一直用ASPJPEG组件的图片合成功能给自己网站上的上传图片加水印,不过从来没考虑过透明背景的水印。因为之前的水印是用的黑色背景加文字做的水印图片。今天心血来潮想换个水印图片,用色彩各异的文字拼成网址,然后直接描边…
这下问题就来了,直接描边后的文字是带有曲线的,如果带上背景嵌到图片上无疑不是很美观,于是需要做成透明背景的图片。开始以为直接导出为透明的GIF或PNG就可以用了,没想到upload的时候出来的效果仍然是带有底色的。没办法,于是乎只能翻翻ASPJPEG组件的文档说明(程序里一般带有注释,查看即可)
看到图像合并语句时“Jpeg.Canvas.DrawImage 0,Jpeg.OriginalHeight/2-33,Jpeg1,0.6,&HCCCCCC”请注意红色标示部分。
该六位数代码表示你需要过滤的水印图片中的颜色,比如你将你做的水印图片背景设置为白色,那么此处的代码就是“Jpeg.Canvas.DrawImage 0,Jpeg.OriginalHeight/2-33,Jpeg1,0.6,&HFFFFFF”。
如何?你也试试吧…^_^
测试效果图:
JPG格式 白色背景 watermark
GIF格式 白色背景 watermark
PNG格式 白色背景 watermark
=====================
采用GIF/PNG格式的图片效果一样都比JPG的杂色少很多,但是有点白色杂色的边在:(。
=====================
GIF格式 背景透明 watermark
直接采用GIF格式的透明背景图片,在不过滤背景颜色的前提下,GIF的透明背景会变成白色,于是我们过滤白色,得到上图效果。虽然用GIF无背景色的水印图片显示质量下降,但是可以完全解决杂色的问题…^_^暂时没有找到更好的处理办法时先这样吧,有少许瑕疵..俺忍列:~慢慢研究…
如果对水印显示质量有更高要求者,可以换用文字水印或者设计带背景色的水印…
【注】PNG格式 背景透明 的图片无法用颜色过滤法合成透明效果,合成后透明部分始终被黑色填充。切记~
Like this:
Be the first to like this post.