嘿嘿~因为大家,困绕我好几天的问题终于得到解决了~轻松多了~
真的太感谢大家了,都不知道该怎么说了 嘿嘿
现在问一个不太重要的问题啊
怎样把服务器中用户上传的图片全部加上水印?
用ASP怎么才能做到啊?我只是想知道
------解决方案--------------------
aspjpeg高级使用方法
这里的技术主要包括:
图片缩略
图片水印
安全码技术
图片切割
图片合并
数据库支持
更多不常用的方法介绍
以及相关的一些实用技术
aspjpeg唯一点不足的就是输出方式比较单一。在这里,我们主要谈将图片处理保存后再调用的这种输出方法。
一、图片缩略
<%
Set Jpeg = Server.CreateObject( "Persits.Jpeg ") 调用组件
Path = Server.MapPath( "images ") & "clock.jpg " 待处理图片路径
Jpeg.Open Path 打开图片
高与宽为原图片的1/2
Jpeg.Width = Jpeg.OriginalWidth / 2
Jpeg.Height = Jpeg.OriginalHeight / 2
保存图片
Jpeg.Save Server.MapPath( "images ") & "clock_small.jpg "
%>
<IMG src= "/images/clock_small.jpg "> 查看处理的图片
二、图片水印
<%
Set Jpeg = Server.CreateObject( "Persits.Jpeg ")
Jpeg.Open Server.MapPath( "images/dodge_viper.jpg ")
开始写文字
Jpeg.Canvas.Font.Color = &HFF0000 ' red 颜色
Jpeg.Canvas.Font.Family = "Courier New " 字体
Jpeg.Canvas.Font.Bold = True 是否加粗
Jpeg.Canvas.Print 10, 10, "Copyright (c) XYZ, Inc. "
打印坐标x 打印坐标y 需要打印的字符
以下是对图片进行边框处理
Jpeg.Canvas.Pen.Color = &H000000 ' black 颜色
Jpeg.Canvas.Pen.Width = 2 画笔宽度
Jpeg.Canvas.Brush.Solid = False 是否加粗处理
Jpeg.Canvas.Bar 1, 1, Jpeg.Width, Jpeg.Height
起始X坐标 起始Y坐标 输入长度 输入高度
Jpeg.Save Server.MapPath( "images/dodge_viper_framed.jpg ") 保存
%>
三、安全码
安全玛的道理和加水印差不多,
<%
生成安全码的函数
function make_randomize(max_len,w_n) max_len 生成长度,w_n:0 可能包含字母,1:只为数字
randomize
for intcounter=1 to max_len
whatnext=int((1-0+1)*rnd+w_n)
if whatnext=0 then
upper=122
lower=97
else
upper=57
lower=48
end if
strnewpass=strnewpass & chr(int((upper-lower+1)*rnd)+lower)
next
make_randomize=strnewpass
end function
%>
生成安全码的图片。当然你要预先准备一张背景图哦
<%random_num=make_randomize(4,1) 生成4位数字的安全码
session( "random_num ")=random_num 为什么调用session,没有session的安全码是完全没有意义的。呵呵
Set Jpeg = Server.CreateObject( "Persits.Jpeg ") 调用组件
Jpeg.Open Server.MapPath( "infos/random_pic/random_index.gif ") 打开准备的图片
Jpeg.Canvas.Font.Color = &H006699
Jpeg.Canvas.Font.Family = "Arial Black "
Jpeg.Canvas.Font.Bold = false
Jpeg.Canvas.PrintText 0, -2, random_num
jpeg.save Server.MapPath( "infos/random_pic/random_index.bmp ") 保存
%> <img src= "/infos/random_pic/random_index.bmp " border= "0 " align= "absmiddle ">
自己做做看。呵呵。
不想做背景图片的。去http://comapny.windowscar.com/infos/random_pic/random_index.gif下载吧
四、图片切割
一直以来,对aspjpeg不了解的人以为是无法用它来进行切割的。
其实有这样的一个方法的
crop x1,y1,x2,y2
切割长方型左上角x坐标,y坐标 右下角x坐标 y坐标
下面我就做一个演示哈
Set Jpeg = Server.CreateObject( "Persits.Jpeg ")
jpeg.open server.MapPath( "/pic/1.gif ")
jpeg.width=70
Jpeg.Height = Jpeg.OriginalHeight*70 / jpeg.Originawidth
jpeg.crop 0,0,70,52 开始切割其实是把超过52象素的下部分去掉
jpeg.save server.MapPath( "/temp_pic/small_1.gif ") 保存
怎么样,很简单吧
五、图片合并
我们这里是要把logo图片加到dodge_viper.jpg图片上去
其实,图片合并的方法也可以用来动态打水印哦
Set Photo = Server.CreateObject( "Persits.Jpeg ")
PhotoPath = Server.MapPath( "images ") & "dodge_viper.jpg "
Photo.Open PhotoPath
Set Logo = Server.CreateObject( "Persits.Jpeg ")
LogoPath = Server.MapPath( "images ") & "clock.jpg "