2006年6月22日星期四

使用ASPJPEG添加水印的方法

  这些天研究了一下ASP的自动添加图片水印的方法。

  因为原先我的图片总是被盗链,因此我使用程序将图片增加了水印,然而我查看了一下昨天和今天的网站日志记录,发现我的图片依旧被盗链严重。

  两天的时间,我的博客就有20多G的访问流量,图片所在的目录upload占用了18.6G,37万次点击,而文章所在目录只用了1.3G流量,4万次点击,从来源看,以大站盗链的图片所占流量最大,CSDN和BOKEE占前两位,这两个地址一共带来4万多次盗链。

  当然,如果彻底防止盗链,我以前也想过使用类似ISAPI Rewrite的程序来实现,但实际使用后,我发现ISAPI Rewrite将所有的外部链接全部都禁止了,但是我并不想禁用全部外部链接,因此还是最终没有使用,不过如果现在这种盗链情况继续进行的话,我不得不考虑重新启用ISAPI Rewrite这个程序了。

  下面是我使用程序来增加水印的方法,虽然以我目前的使用效果看,是比较失败的案例。

  增加水印使用的是一个名叫ASPJPEG的ASP组件,我是在OBlog的网站上下载的,版本是1.5版本,使用这个图象处理组件,可以轻松地做出图片的缩略图和为图片加上水印功能。下面简单介绍一下使用方法:

  先要到Oblog的下载页面上,在“OBLOG相关组件下载”处,下载AspJpeg v1.5.0.0,然后执行下载得到的文件,安装该组件。

  然后在ASP代码里增加一点点代码即可,增加的位置可以放在上传图片完成后,取得图片地址,进行修改。对于Z-Blog的使用者,直接将下面代码复制到c_system_lib.asp文件的TUpLoadFile类中的Upload函数的结尾即可实现水印功能。

  1、为图片加入水印功能

Dim Jpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg")  ' 建立对象
Jpeg.Open BlogPath & "/upload/" & FileName  ' 图片所在位置
Jpeg.Canvas.Font.Color = &H000000 ' 颜色,这里是设置成:黑
Jpeg.Canvas.Font.Family = "方正隶变简体"  ' 设置字体
Jpeg.Canvas.Font.Bold = False '是否设置成粗体
Jpeg.Canvas.Font.Size = 26 '字体大小
Jpeg.Canvas.Font.Quality = 4 ' 文字清晰度
Jpeg.Canvas.Print Jpeg.OriginalWidth/2-170,Jpeg.OriginalHeight-30, "WWW.WILLIAMLONG.INFO"   '水印文字
Jpeg.Save BlogPath & "/upload/" & FileName  ' 保存文件
Set Jpeg = Nothing

  2、为图片制作缩略图

Dim Jpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg")  ' 建立对象
Jpeg.Open BlogPath & "/upload/" & FileName  ' 图片所在位置
Jpeg.Width = Jpeg.OriginalWidth / 2
Jpeg.Height = Jpeg.OriginalHeight / 2
' 设置缩略图大小(这里比例设定为50%),也可以给他准确的数值,比如Jpeg.Width=120
Jpeg.Save BlogPath & "/upload/" & FileName  ' 保存文件
Set Jpeg = Nothing