龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp编程 >

用AspJpeg调整文字水印透明,生成图片水印的效果

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
公司做了个客户,需要图片生成像alibaba的效果。原来开发的系统都是用Aspjpeg进行缩小图的,现在需要处理图片,当然又想到这个组件。但后来发现,用Aspjpeg进行水印的时候效果总是不
  公司做了个客户,需要图片生成像alibaba的效果。原来开发的系统都是用Aspjpeg进行缩小图的,现在需要处理图片,当然又想到这个组件。但后来发现,用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
%>

  效果图:

用AspJpeg调整文字水印透明,生成图片水印的效果


AspJpeg组件给图片加透明图片水印

为图片加水印
Dim Jpeg,Jpeg1
'建立实例
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Set Jpeg1 = Server.CreateObject("Persits.Jpeg")
'打开要加水印的图片
Jpeg.Open Server.mappath(路径)
'透明图片水印图
Jpeg1.Open Server.mappath("../Images/sy.gif")
'合并图
Jpeg.Canvas.DrawImage 0,Jpeg.OriginalHeight/2-33,Jpeg1,0.6,&HFFFFFF
' 保存文件
Jpeg.Save Server.mappath(路径)
' 注销对象
Set Jpeg = Nothing
Set Jpeg1 = Nothing

加透明图片水印,实际上就是将两个图合并,最关键的就是这一句:

Jpeg.Canvas.DrawImage OriginalWidth/2-22,Jpeg.OriginalHeight/2-33,Jpeg1,0.6,&HFFFFFF

其中0.6是透明度,1是不透明,值越小,透明越大,0就什么也看不见了。&HFFFFFF这个参数是最关键的,这是透明图片水印图的背景色,这个参数必须与透明图片水印图的背景一样,不然的话就实现不了透明了。就是我们不想看到的那一部分色

精彩图集

赞助商链接