eWebeditor集成aspjpeg

采用的版本: 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平台上测试成功!

有问题请指出!

posted on 2008-06-19 23:02  阿栋.c#  阅读(267)  评论(0编辑  收藏  举报

导航