采用的版本: 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 οnchange="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平台上测试成功!
有问题请指出!