用AspJpeg调整文字水印透明,生成图片水印的效果
公司做了个客户,需要图片生成像alibaba的效果。原来开发的系统都是用Aspjpeg进行缩小图的,现在需要处理图片,当然又想到这个组件。但后来发现,用Aspjpeg进行水印的时候效果总是不理想,特别是图片效果,而文字水印不能调整透明度同样不能满足客户。 ![]() 技术支持:
1、aspjpeg能对图片水印进行透明度调整,不能对文字水印调整, 2、aspjpeg支持Binary,可以Jpeg.OpenBinary读取,可以Jpeg.sendBinary,也可Jpeg.Binary赋值 思路: 1、把原始的图片数据二进制度赋值给aa, 2、将文字水印处理后的图片数据二进制赋值给bb, 3、以bb作为"图片水印",附加在aa上,调整透明度,输出就ok了 思路很简单,代码也很简单: <%
LocalFile="d:\mytest.jpg" TargetFile="d:mytest_Text.jpg" Dim Jpeg Set Jpeg = Server.CreateObject("Persits.Jpeg") If -2147221005=Err then Response.write "没有这个组件,请安装!" ’检查是否安装AspJpeg组件 Response.End() End If Jpeg.Open (LocalFile) ’打开图片 If err.number then Response.write"打开图片失败,请检查路径!" Response.End() End if 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 = 35 ’字体大小 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.sotuku.com" ’水印位置及文字 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.2 ’0.3是透明度 cc=MyJpeg.Binary ’将最终结果赋值给cc,这时也可以生成目标图片了 response.BinaryWrite cc ’将二进输出给浏览器 MyJpeg.Save (TargetFile) set aa=nothing set bb=nothing set cc=nothing Jpeg.close MyJpeg.Close Logo.Close %> 效果图:
![]() |





simeon2005
博客统计信息
热门文章
最新评论
友情链接
