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

ASP
asp实现取得数组中的最大值的代码
asp 将日期格式化为需要的格式
asp 下产生任意位数随机密码的代码
asp下返回以千分位显示数字格式化的数值
asp重定向页面的方法总结
asp下去除数组中重复的项的方法
asp下实现 重新排序数字数组的代码
asp 验证输入网址是否有效并可以访问 与正则验证输入网址
asp验证Ip格式的函数
asp实现生成由数字,大写字母,小写字母指定位数的随机数
asp 格式化sql中的like字符串
asp 实现显示所有的服务器变量值的函数
asp 取得用户真实IP,对代理地址仍然有效的函数
asp 通用数据库连接过程函数
asp 字符串截取函数
asp下实现格式化文件大小以MB显示的函数
asp 下用正则表达式检测邮箱格式的函数
asp 实现检测字符串是否为纯字母和数字组合的函数
asp代码实现检测组件是否安装的函数
asp通过JMAIL实现通用发送函数

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 85 ::
收藏到网摘: 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