本文首发于风易博客: http://blog.wind88.net/article.asp?id=8
让PJBLOG上传的图片打上水印!!!
前提是你的服务器支持: ASPJPEG组件,支持与否你可向虚拟主机提供商咨询.本站提供的各款虚拟主机均支持该组件.
注:红色的为原代码,兰色的为添加的代码.
打开 attachment.asp
找到: 56行
F_File.SaveAs Server.MapPath("attachments/"&D_Name&"/"&F_Name)
CreateView("attachments/"&D_Name&"/"&F_Name)
response.write "<script>addUploadItem('"&F_Type&"','attachments/"&D_Name&"/"&F_Name&"',"&Request.QueryString("MSave")&")</script>"
在文件的最底部添加如下代码:
Else
Response.Write("<div style=""padding:6px;color:#f00"">对不起,你没有权限上传附件!</div>")
End If
'图片打水印,二进制模式,提高清晰度
'清风修改 QQ: 110125707 MSN: anwellsz@msn.com
'Last Modify : 09/08/2006
Sub CreateView(imgName)
On Error Resume Next
'response.write "<script>alert('"&imgName&"');</script>"
'response.End
Dim Jpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg")
If -2147221005=Err then
Response.write "没有这个组件,请安装!" '检查是否安装AspJpeg组件
Response.End()
End If
Jpeg.Open Server.MapPath(imgName) '打开图片
If err.number then
Response.write"打开图片失败,请检查路径!"
Response.End()
End if
Dim aa,MyJpeg,Logo,bb
aa=Jpeg.Binary '将原始数据赋给aa
'=========加文字水印=================
Jpeg.Canvas.Font.Color = &Hfffffff '水印文字颜色
Jpeg.Canvas.Font.Family = Arial '字体
Jpeg.Canvas.Font.Bold = True '是否加粗
Jpeg.Canvas.Font.Size = 28 '字体大小
Jpeg.Canvas.Font.ShadowColor = &H000000 '阴影色彩
Jpeg.Canvas.Font.ShadowYOffset = 1
Jpeg.Canvas.Font.ShadowXOffset = 1
Jpeg.Canvas.Brush.Solid = True
Jpeg.Canvas.Font.Quality = 4 ' '输出质量
Jpeg.Canvas.PrintText Jpeg.OriginalWidth/2-100,Jpeg.OriginalHeight/2+20,"www.wind88.net" '水印位置及文字
bb=Jpeg.Binary '将文字水印处理后的值赋给bb,这时,文字水印没有不透明度
'============调整文字透明度================
Set MyJpeg = Server.CreateObject("Persits.Jpeg")
MyJpeg.OpenBinary aa
Set Logo = Server.CreateObject("Persits.Jpeg")
Logo.OpenBinary bb
MyJpeg.DrawImage 0,0, Logo, 0.6 '0.6是透明度
MyJpeg.Save Server.MapPath(imgName)
set aa=nothing
set bb=nothing
Jpeg.close
MyJpeg.Close
Logo.Close
End Sub
%>
显示效图: