当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP程序给上传的图片增添水印效果!

ASP
ASP正则表达式技巧
ASP Access实现网站计数器(访问量)
ASP新闻分页,将一篇过长的文章分页,生成静态页面
一些关于asp 购物车的想法
一个sql查询器,自动画表格填字段
ASP实现文件直接下载的代码
把网页中的(电话,qq等数字)生成图片的ASP程序
asp长文章用分页符来分页显示
Asp函数介紹(37个常用函数)
ASP中的面向对象类
分页实现方法的性能比较
asp ajax跨域提交数据
asp修改文件和文件夹的名字的代码
ASP 多关键词查询实例代码
asp被杀毒软件误删的解决方法
asp 多关键词搜索的简单实现方法
asp 根据IP地址自动判断转向分站的代码
asp dictionary对象的用法
ASP 千万级数据分页的存储过程
ASP隐藏真实文件的下载功能实现代码

ASP程序给上传的图片增添水印效果!


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 68 ::
收藏到网摘: n/a

ASPJPEG是Persits出品的共享软件,试用期为30天,您可以在这里下载:http://www.persits.com/aspjpeg.exe
最新版本号是1.3

=========================================
<%
sub jpegclass(imgurl,fontsize,family,isbold,top,left,content,Horflip) '调用过程名
Dim Jpeg,font_color,font_size,font_family,f_width,f_height,f_content,f_Horflip
'建立实例
Set Jpeg = Server.CreateObject("/upload/tech/20091012/20091012012102_0777d5c17d4066b82ab86dff8a46af6f.jpeg")
font_size=10
font_family="宋体"
f_left= 5
f_top=5
if imgurl<>"" then
Jpeg.Open Server.MapPath(imgurl)'图片路径并打开它
else
response.write "未找到图片路径"
exit sub
end if
if fontsize<>"" then font_size=fontsize '字体大小
if family<>"" then font_family=family '字体
if top<>"" then f_left=left '水印离图片左边位置
if left<>"" then f_top=top '水印离图片top位置
if content="" then '水印内容
response.write "水印什么内容呢,水印不成功!"
exit sub
else
f_content=content
end if

' 添加文字水印
Jpeg.Canvas.Font.Color = &hff0000 ' 红色
Jpeg.Canvas.Font.Family = font_family
jpeg.canvas.font.size= font_size
if isbold=1 then
Jpeg.Canvas.Font.Bold = True
end if
If Horflip = 1 Then
Jpeg.FlipH
'Jpeg.SendBinary
End If
Jpeg.Canvas.Print f_left, f_top, f_content
' 保存文件
Jpeg.Save Server.MapPath(imgurl)
' 注销对象
Set Jpeg = Nothing
response.write "水印成功,图片上加了 "&content&""
end sub
call jpegclass("/upload/tech/20091012/20091012012103_1595af6435015c77a7149e92a551338e.jpg",13,"楷体",1,18,18,"你好,这是水印程序",1)
%>
先下载aspjpeg组建,注册后使用
################转载方法2####################
ASP给图片加水印是需要组件的...常用的有aspjpeg软件和中国人自己开发的wsImage软件,可以上网搜索下载这两个软件,推荐使用咱们中国人自己开发的wsImage,毕竟是中文版,容易操作.
注册组件的方法:
命令提示符下输入"regsvr32 [Dll路径]" 就可以了.
图片添加水印无非就是获得图片大小,然后把水印写上去..ASP代码只是起个控制组件的作用.用代码来说明一切吧.
一:获得图片大小(这里是用象素值表示的.学PhotoShop的朋友都应该明白)
<%
set obj=server.CreateObject("wsImage.Resize") ''调用组件
obj.LoadSoucePic server.mappath("/upload/tech/20091012/20091012012103_3dc4876f3f08201c7c76cb71fa1da439.jpg") ''打开图片,图片名字是/upload/tech/20091012/20091012012103_3dc4876f3f08201c7c76cb71fa1da439.jpg
obj.GetSourceInfo iWidth,iHeight
response.write "图片宽度:" & iWidth & "<br>" ''获得图片宽度
response.write "图片高度:" & iHeight & "<br>" ''获得图片高度
strError=obj.errorinfo
if strError<>"" then
response.write obj.errorinfo
end if
obj.free
set obj=nothing
%>
''----------------------------------------------------------------''
二:添加文字水印
<%
set obj=server.CreateObject("wsImage.Resize")
obj.LoadSoucePic server.mappath("/upload/tech/20091012/20091012012103_3dc4876f3f08201c7c76cb71fa1da439.jpg") ''装载图片
obj.Quality=75
obj.TxtMarkFont = "华文彩云" ''设置水印文字字体
obj.TxtMarkBond = false ''设置水印文字的粗细
obj.MarkRotate = 0 ''水印文字的旋转角度
obj.TxtMarkHeight = 25 ''水印文字的高度
obj.AddTxtMark server.mappath("/upload/tech/20091012/20091012012104_5ef698cd9fe650923ea331c15af3b160.jpg"), "带你离境", &H00FF00&, 10, 70
strError=obj.errorinfo ''生成图片名字,文字颜色即水印在图片的位置
if strError<>"" then
response.write obj.errorinfo
end if
obj.free
set obj=nothing
%>
''----------------------------------------------------------------''
三:添加图片水印
<%
set obj=server.CreateObject("wsImage.Resize")
obj.LoadSoucePic server.mappath("/upload/tech/20091012/20091012012103_3dc4876f3f08201c7c76cb71fa1da439.jpg") ''装载图片
obj.LoadImgMarkPic server.mappath("/upload/tech/20091012/20091012012106_698d51a19d8a121ce581499d7b701668.bmp") ''装载水印图片
obj.Quality=75
obj.AddImgMark server.mappath("/upload/tech/20091012/20091012012106_16a5cdae362b8d27a1d8f8c7b78b4330.jpg"), 315, 220,&hFFFFFF, 70
strError=obj.errorinfo ''生成图片名字,文字颜色即水印在图片的位置
if strError<>"" then
response.write obj.errorinfo
end if
obj.free
set obj=nothing
%>
''----------------------------------------------------------------''
其实给图片添加水印就这么简单.然后我在说下WsImage.dll组件的另外两个主要用法.包括:
剪裁图片,生成图片的缩略图.
还是以我得习惯,用代码加注释说明:
剪裁图片:
<%
set obj=server.CreateObject("wsImage.Resize")
obj.LoadSoucePic server.mappath("/upload/tech/20091012/20091012012103_3dc4876f3f08201c7c76cb71fa1da439.jpg")
obj.Quality=75
obj.cropImage server.mappath("/upload/tech/20091012/20091012012107_9431c87f273e507e6040fcb07dcb4509.jpg"),100,10,200,200 ''定义裁减大小和生成图片名字
strError=obj.errorinfo
if strError<>"" then
response.write obj.errorinfo
end if
obj.free
set obj=nothing
%>
详细注释:裁减图片用到了WsImage的CropImage方法.其中定义生成图片时候,100,10是左上角的裁减点,即离图片左边是100象素,顶端10象素.后两个200代表的是裁减的宽带和高和高度.
''----------------------------------------------------------------''
生成图片缩略图:
<%
set obj=server.CreateObject("wsImage.Resize")
obj.LoadSoucePic server.mappath("/upload/tech/20091012/20091012012103_3dc4876f3f08201c7c76cb71fa1da439.jpg") ''加载图片
obj.Quality=75
obj.OutputSpic server.mappath("/upload/tech/20091012/20091012012108_3dc4876f3f08201c7c76cb71fa1da439.jpg"),0.5,0.5,3 ''定义缩略图的名字即大小
strError=obj.errorinfo
if strError<>"" then
response.write obj.errorinfo
end if
obj.free
set obj=nothing
%>
详细说明:
产生缩略图共有四种导出方式:
(1) obj.OutputSpic server.mappath("/upload/tech/20091012/20091012012108_3dc4876f3f08201c7c76cb71fa1da439.jpg"),200,150,0
200为输出宽,150为输出高,这种输出形式为强制输出宽高,可能引起图片变形。
(2) obj.OutputSpic server.mappath("/upload/tech/20091012/20091012012108_3dc4876f3f08201c7c76cb71fa1da439.jpg"),200,0,1
以200为输出宽,输出高将随比列缩放。
(3) obj.OutputSpic server.mappath("/upload/tech/20091012/20091012012108_3dc4876f3f08201c7c76cb71fa1da439.jpg"),0,200,2
以200为输出高,输出宽将随比列缩放。
(4) obj.OutputSpic server.mappath("/upload/tech/20091012/20091012012108_3dc4876f3f08201c7c76cb71fa1da439.jpg"),0.5,0.5,3
第一个0.5表示生成的缩略图是原图宽的一半,即表示宽缩小比例。
第二个0.5表示生成的缩略图是原图高的一半,即表示高缩小比例。
宽高的缩小比例一致意味着将对原图进行比例缩小。宽高的缩放比例如果大于1,则对原图进行放大。

希望这点技术性文章对你有帮助.

小程序详细内容和下载地址:http://www.mbsky.com/SoftView/SoftView_38956.html