利用AspJpeg组件制作透明文字水印

网络整理 - 09-04
技术支持:
   1、aspjpeg能对图片水印进行透明度调整,不能对文字水印调整。
   2、aspjpeg支持Binary,可以Jpeg.OpenBinary读取,可以Jpeg.sendBinary,也可Jpeg.Binary赋值。

思路:
   1、把原始的图片数据二进制度赋值给TempA。
   2、将文字水印处理后的图片数据二进制赋值给TempB。
   3、以TempB作为“图片水印”,附加在TempA上,调整透明度,输出就OK了。

思路很简单,代码也很简单:

<%
LocalFile="e:\logo.jpg" 
TargetFile="e:\mylogo.jpg" 
Dim Jpeg 
Set Jpeg = Server.CreateObject("Persits.Jpeg") 
If Err.Number=-2147221005 then 
Response.write "没有这个组件,请安装!" '检查是否安装AspJpeg组件 
Response.End() 
End If 
Jpeg.Open (LocalFile) '打开图片 
If err.number then 
Response.write "打开图片失败,请检查路径!" 
Response.End() 
End if 
Dim TempA '原始图片的二进制数据
Dim TempB '加了不透明文字水印的图片
Dim TempC '最终效果
TempA=Jpeg.Binary'将原始数据赋给TempA 
'=========加文字水印================= 
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 = 5 '输出质量 
Jpeg.Canvas.PrintText Jpeg.OriginalWidth/2-150,Jpeg.OriginalHeight/2,"" '水印位置及文字 
TempB=Jpeg.Binary '将文字水印处理后的值赋给TempB,这时,文字水印没有不透明度 
'============调整文字透明度================ 
Set MyJpeg = Server.CreateObject("Persits.Jpeg") 
MyJpeg.OpenBinary TempA 
Set Logo = Server.CreateObject("Persits.Jpeg") 
Logo.OpenBinary TempB 
MyJpeg.DrawImage 0, 0, Logo, 0.2 '0.2是透明度 
TempC=MyJpeg.Binary '将最终结果赋值给TempC,这时也可以生成目标图片了 
response.BinaryWrite TempC '将二进输出给浏览器 
MyJpeg.Save (TargetFile) 
set TempA=nothing 
set TempB=nothing 
set TempC=nothing 
Jpeg.close 
MyJpeg.Close 
Logo.Close 
%>