首页 >> 网站开发 >> ASP

eWebeditor集成aspjpeg

作者:anwell 的 Blog

采用的版本: ewebeditor version 2.8  aspjpeg V1.3

支持添加不同的水印.

相关代码如下:

要修改的页面

eWebeditor目录下 \Dialog\img.htm

注:蓝色的部分为修改和添加的代码.

第256行开始:

<legend>显示效果</legend>
 <table border=0 cellpadding=0 cellspacing=0>
 <tr><td colspan=9 height=5></td></tr>
 <tr>
  <td width=7></td>
  <td>图片水印:</td>
  <td width=5></td>
  <td colspan=5><select id="d_syy" size=1 onchange="d_file.myform.sy.value=this.value">
  <option selected>无水印</option>
  <option value="1">新浪LOGO</option>
  <option value="2">搜狐LOGO</option>
  <option value="3">网易LOGO</option>
  </select></td>
  <td width=7></td>
 </tr>
 <tr>
  <td width=7></td>
  <td>说明文字:</td>
  <td width=5></td>
  <td colspan=5><input type=text id=d_alt size=38 value="" style="width:243px"></td>
  <td width=7></td>
 </tr>

eWebeditor 目录下的  upload.asp

在上传表单添加隐含字段,用于接收选择添加的水印图片

<form action="?action=save&type=<%=sType%>&style=<%=sStyleName%>&sy=1" method=post name=myform enctype="multipart/form-data">
<input type=file name=uploadfile size=1 style="width:100%">
<input type="hidden" name="sy">
</form>

在处理图片上传的SUB中修改如下:

Sub DoSave()
 Dim oUpload, oFile, sFileExt, sFileName,sy
 '''' 建立上传对象
 Set oUpload = New upfile_class
 '''' 取得上传数据,限制最大上传
 oUpload.GetData(nAllowSize*1024)
 If oUpload.Err > 0 Then
  Select Case oUpload.Err
  Case 1
   Call OutScript("parent.UploadError(''''请选择有效的上传文件!'''')")
  Case 2
   Call OutScript("parent.UploadError(''''你上传的文件总大小超出了最大限制(" & nAllowSize & "KB)!'''')")
  End Select
  Response.End
 End If

 Set oFile = oUpload.File("uploadfile")
 sy = oUpload.Form("sy")
 sFileExt = UCase(oFile.FileExt)
 Call CheckValidExt(sFileExt)

 Dim sRnd
 Randomize
 sRnd = Int(900 * Rnd) + 100
 sFileName = year(now) & month(now) & day(now) & hour(now) & minute(now) & second(now) & sRnd & "." & sFileExt
 oFile.SaveToFile Server.Mappath("uploadfile/"& sFileName)

 Set oFile = Nothing
 Set oUpload = Nothing
 ''''图片打水印
 If sy <> "" And Not IsNull(sy) And Not IsEmpty(sy) Then
  call CreateView("uploadfile/"& sFileName,sy)
 End If

 Call OutScript("parent.UploadSaved(''''" & sFileName & "'''')")

End Sub

 

添加水印的SUB

''''创建预览图片及打水印:call CreateView(文件的路径,要添加的水印图片文件)
''''摘取自动网,清风修改于 04/07/2006

Sub CreateView(imagename,logoimg)
 ''''定义变量
 Dim ogvbox,objFont,img
 Dim Logobox,LogoPath
 Dim sWidth,sHeight  ''''水印图片的宽度和高度
 Select Case logoimg
 Case "1"
  img = "/sy/logo.gif"
  sWidth = "87"
  sHeight = "52"
 Case "2"
  img = "/sy/logo1.gif"
  sWidth = "149"
  sHeight = "39"
 Case Else
  img = "/sy/logo2.gif"
  sWidth = "106"
  sHeight = "60"
 End Select
 LogoPath = Server.MapPath(img)  ''''//加入图片所在路径及文件名
 ''''---------------------AspJpegV1.2---------------
 Set Logobox = Server.CreateObject("Persits.Jpeg")
 ''''*添加水印图片 添加时请关闭水印字体*
 ''''//读取添加的图片
 Logobox.Open LogoPath
 ''''//重新设置图片的大小
 Logobox.Width = sWidth  ''''// 加入图片的原宽度
 Logobox.Height = sHeight ''''// 加入图片的原高度
 ''''*添加水印图片*
 Set ogvbox = Server.CreateObject("Persits.Jpeg")
 '''' 读取要处理的原文件
 
 ogvbox.Open Trim(Server.MapPath(imagename))
 ''''ogvbox.Open Trim(imagename)
 ''''If ogvbox.OriginalWidth<Cint(ImageWidth) or ogvbox.Originalheight<Cint(ImageHeight) Then
  ''''F_Viewname=""
  ''''Set ogvbox = Nothing
  ''''Exit Sub
  
 ''''Else
  ''''//关于修改字体及文字颜色的
  ''''ogvbox.Canvas.Font.Color = &HFF0000  ''''// 文字的颜色
  ''''ogvbox.Canvas.Font.Family = "monospace" ''''// 文字的字体
  ''''ogvbox.Canvas.Font.Bold = True
  ''''Draw frame: black, 2-pixel width
  ''''ogvbox.Canvas.Print 10, 10, ImageMode  ''''// 加入文字的位置坐标
  ogvbox.Canvas.Pen.Color  = &HFFFFFF ''''// 边框的颜色
  ogvbox.Canvas.Pen.Width  = 0    ''''// 边框的粗细
  ogvbox.Canvas.Brush.Solid = False   ''''// 图片边框内是否填充颜色
  ogvbox.DrawImage ogvbox.Width/1.6, ogvbox.Height/1.5, Logobox, 0.4, &HFFFFFF ''''// 加入图片的位置价坐标(添加水印图片)
  ogvbox.Canvas.Bar 0, 0, ogvbox.Width, ogvbox.Height ''''// 图片边框线的位置坐标
  ogvbox.Width = ogvbox.Width
  ogvbox.height = ogvbox.height
  ''''ogvbox.height = ogvbox.Originalheight*ImageWidth\ogvbox.OriginalWidth
  ogvbox.Sharpen 1, 120
  ogvbox.Save Server.MapPath(imagename)  ''''// 生成文件
 ''''End If
 Set Logobox=Nothing
End Sub

以上代码在win2k Server IIS5和WIN2003 IIS6平台上测试成功!

有问题请指出!