◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
为Zblog图片自动加入水印
图片盗链是很容易被忽视的,因为图片往往占用空间不大。但是,如果盗链者的流量很大,或者图片被四处盗链,恐怕流量的消耗也非常可观(每天G级都有可能)。我想,这就是为什么大部分站点的图片都会加上带有版权的水印,虽然这不是技术上杜绝盗链,但会起到一定的抑制作用。毕竟一大部分盗链者会因此而犹豫一下。
对于zblog,最简单的加水印方法如下:
方法一:
找到c_system_lib.asp文件,其中有函数upload,在该函数末尾加上下列代码即可:
If CheckRegExp(LCase(FileName),"jpg|gif|bmp|png") Then
Dim Jpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg") ' 建立对象
Jpeg.Open BlogPath & "/upload/" & FileName ' 图片所在位置
Jpeg.Canvas.Font.Color = &HCC6600' 颜色,这里是设置成:黑
Jpeg.Canvas.Font.Family = "方正隶变简体" ' 设置字体
Jpeg.Canvas.Font.Bold = False '是否设置成粗体
Jpeg.Canvas.Font.Size = 24 '字体大小
Jpeg.Canvas.Font.Quality = 3 ' 文字清晰度
Jpeg.Canvas.Print Jpeg.OriginalWidth-250,Jpeg.OriginalHeight-30, "www.WinsHome.com" '水印文字
Jpeg.Save BlogPath & "/upload/" & FileName ' 保存文件
Set Jpeg = Nothing
END IF
方法一说明:
1.必须要改的部分是上述红色部分(除非你想加入我的水印文字)。
2.其他部分等号右边均可自定义,请参照注释
3.第一行的判断语句作用是判断上传的文件是否图片,否则上传其他文件会出错。
效果演示:点击打开图片
方法一的缺点:
1.细心的朋友会发现,水印处的背景有些斑斑点点,很模糊,对图像本身的效果有点影响,虽然不大。
2.如果某些图片想要全图,恐怕就拿不到了。
对于第二个缺点,我觉得可以有两个解决方法:
一是修改最后文件保存的地址,这样每次上传得图片会保存一个原图副本。
二是修改图片类型的判断,比如改为"jpg|gif|bmp",如果不希望加入水印,就将图片处理为png格式后再上传即可,而其他格式仍然自动加入水印。
对于第一个缺点,可能不很重要,不过,我还是把我的方法分享一下,希望的效果是加入的水印文字是透明的,仍然是上述位置,加入的代码变为:
If CheckRegExp(LCase(FileName),"jpg|gif|bmp|png") Then
Dim Jpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open BlogPath & "/upload/" & FileName ' 图片所在位置
Dim aa
aa=Jpeg.Binary '将原始数据赋给aa
'=========加文字水印=================
Jpeg.Canvas.Font.Color = &Hfffffff '水印文字颜色
Jpeg.Canvas.Font.Family = "Arial" '字体
Jpeg.Canvas.Font.Bold = True '是否加粗
Jpeg.Canvas.Font.Size = 24 '字体大小
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.WinsHome.COM" '水印位置及文字
bb=Jpeg.Binary '将文字水印处理后的值赋给bb,这时,文字水印没有不透明度
'============调整文字透明度================
dim MyJpeg
Dim Logo
dim 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.2 '0.3是透明度
MyJpeg.Save BlogPath & "/upload/" & FileName ' 保存文件
set aa=nothing
set bb=nothing
Jpeg.close
MyJpeg.Close
Logo.Close
END IF
因为AspJpeg组件不支持文字的透明效果,这里的思路简单的可以概括为将文字先处理成图片水印,然后与原图融合起来。
方法二效果演示:点击查看图片。
希望对大家有帮助,如果代码有问题或者您有更好的改进,请告诉我!
[updated 2007.02.05]1.7版本需要把上述所有 "/upload/" 修改为 "/" & ZC_UPLOAD_DIRECTORY & "/" (均包含引号).
|
|
||
|
|
|
|
![]() |
||
发布:Debugger | 分类:代码收集 | 引用本文 | 发表评论 | 返回顶部
- 原创文章如转载请注明:来自[闻思家园]:http://www.winshome.com/coding/2007-01/179.html
- 1.chonger Said at 2007-1-15 20:20:16:
- http://achonger.com
- 8错
- 回复该留言 | 直接评论 | 返回顶部
- 2.Debugger Said at 2007-1-15 21:21:45:
- http://www.winshome.com
- chonger: 你用的什么浏览器?我的网页文字是不是没办法选中?
- 回复该留言 | 直接评论 | 返回顶部
- 3.虫儿 Said at 2007-1-16 13:22:51:
- http://achonger.com/lblog
- IE.偶尔也用FF
是的,不可以选中。我以为你是故意那样的。所以要选你的代码很麻烦,还得先把整页放在写字板上,把不需要的再删掉。。 - 回复该留言 | 直接评论 | 返回顶部
- 4.Debugger Said at 2007-1-16 13:37:06:
- http://www.winshome.com
- 不是故意的,ff可以,ie不行。我也不知道原因,不知道哪段代码起的作用。
- 回复该留言 | 直接评论 | 返回顶部
- 5.虫儿 Said at 2007-1-16 14:51:57:
- http://achonger.com/lblog
- 其实也没什么影响。。双击就可以选中啦。。。
- 回复该留言 | 直接评论 | 返回顶部
- 9.kuyo Said at 2007-1-17 14:17:49:
- 水印不错!
给你样式的建议 "最近发表" 标题过长会换行!好象不怎么好看,可以用CSS隐去换行的部分! - 回复该留言 | 直接评论 | 返回顶部
- 11.Debugger Said at 2007-1-17 23:54:49:
- http://winshome.com
- 据大家反馈,FF和ie7没有问题,ie6的确没办法,只能通过双击选择一段文字。考虑下次直接换掉模板,暂时委屈一下吧。
btw:采用了你的建议,标题不再换行,不过很担心出现半个汉字的情况。 - 回复该留言 | 直接评论 | 返回顶部
- 12.Zx.MYS Said at 2007-2-8 8:42:43:
- http://ZxMYS.com
- 不错不错,不过Z-Blog这样更改代码实在有点烦,我有个想法,希望能写一个更改源码的基础过程封装在一个ASP里(就叫做插件中心吧),以后如果要改源码就写成插件直接调用插件中心,这样可以免去用户的很多麻烦.怎奈.asd同志不理我~晕~Debugger 于 2007-2-8 8:42:43 回复
应该是比较麻烦的原因吧,估计得2.0。 - 回复该留言 | 直接评论 | 返回顶部
- 13.walter Said at 2007-3-1 21:58:59:
c_system_lib.asp文件,其中有函数upload???/
我怎么找不着???....提醒下 呵呵,.....
debuggger 于 2007-3-1 21:58:59 回复
确切说应该是 UpLoad(bolAutoName) 这个函数。- 回复该留言 | 直接评论 | 返回顶部
- 14.边走边看 Said at 2007-2-12 19:02:16:
- http://blog.duanyj.com
- 准备用你的方法了,谢谢
- 回复该留言 | 直接评论 | 返回顶部
- 15.边走边看 Said at 2007-3-1 22:01:08:
- 一加上出现:处理 URL 时服务器上出错。请和系统管理员联络。debuggger 于 2007-3-1 22:01:08 回复
不知道是否是插件支持上的问题,还待考证,很抱歉。 - 回复该留言 | 直接评论 | 返回顶部
- 16.kkkk Said at 2007-3-1 21:59:30:
- c_system_lib.asp文件,其中有函数upload???/
我怎么找不着???....提醒下 呵呵,.....debuggger 于 2007-3-1 21:59:30 回复
确切说应该是 UpLoad(bolAutoName) 这个函数。 - 回复该留言 | 直接评论 | 返回顶部
- 17.Zx.MYS Said at 2007-3-1 22:00:16:
- http://ZxMYS.COM
- 貌似用了ASPJPEG后我的一个4K的GIF变成了40K的JPEG。。。debuggger 于 2007-3-1 22:00:16 回复
很奇怪哦,我这里还没遇到,而且程序上看,图片的格式不应该有变化才对。 - 回复该留言 | 直接评论 | 返回顶部
- 18.三分面子 Said at 2007-3-17 19:16:50:
- http://www.aibaa.cn/
- 文件名我就找到了,但打开后不知道应该加在什么地方。c_system_lib.asp文件,函数upload具体在什么地方?

麻烦请说具体一点,好吗?
谢谢! - 回复该留言 | 直接评论 | 返回顶部
- 19.debuggger Said at 2007-3-19 8:48:06:
- http://www.winshome.com
- 为什么不搜索一下?找一下 UpLoad(bolAutoName)
在这个函数结尾有一句 upload=true 加在前面就行了。 - 回复该留言 | 直接评论 | 返回顶部
- 20.三分面子 Said at 2007-3-19 16:10:02:
- 不能用。
我照足功夫做了,可是不能用。
我在这个贴有详细说明。
http://bbs.rainbowsoft.org/viewt ... &extra=page%3D1
- 回复该留言 | 直接评论 | 返回顶部
- 21.升降机 Said at 2008-1-11 18:58:50:
- http://www.jiyangheli.com
- 呵呵 支持 一下 了
- 回复该留言 | 直接评论 | 返回顶部
- 22.打标机激光打标机 Said at 2008-4-17 17:38:53:
- http://www.sdxtkj.com/dabiaoji.htm
- 这篇文章我喜欢
供打标机,激光打标机,标记机,激光标记机,打标机,彩色激光打标机;工业地坪;臭氧机/臭氧发生器;拓展培训,教练技术新闻和政府最新公告 - 回复该留言 | 直接评论 | 返回顶部
- 24.NNB Said at 2008-4-21 14:20:06:
- ................................................................
<a href="http://www.bzjx.net/pro11.asp">喷码机</a>
<a href="http://www.tmdy.net/cp3-2.asp">河南喷码机</a>
<a href="http://www.cnbz.cn/Product.asp?BigClassID=32">郑州喷码机</a>
<a href="http://www.cnbz.cn/Product.asp?BigClassID=19">打包机</a>
<a href="http://www.bzjx.net/pro4.asp">自动打包机</a>
<a href="http://www.bzjx.net/pro4.asp">半自动打包机</a> - 回复该留言 | 直接评论 | 返回顶部
- 25.yinghua Said at 2008-5-13 13:48:47:
- <a href="http://www.bzjx.net/pro11.asp">喷码机</a>
<a href="http://www.tmdy.net/cp3-2.asp">喷码机</a>
<a href="http://www.cnbz.cn/Product.asp?BigClassID=32">喷码机</a>
<a href="http://www.cnbz.cn/Product.asp?BigClassID=18">灌装机</a>
<a href="http://www.bzjx.net/pro10.asp">收缩机</a>
<a href="http://www.cnbz.cn/Product.asp?BigClassID=33">枕式包装机</a>
<a href="http://www.bzjx.net/pro4.asp">打包机</a> - 回复该留言 | 直接评论 | 返回顶部
