asp是脚本语言加上逐渐被.net代替,在有些功能上有些力不从心。但别忘asp是特别成熟的开发网站也特别实用,在功能上,我们可以多有一些组件。AspJpeg就专属asp组件,运用它做图片生成小图很简单实用。如一个商城网站客户上传了上万张产品展示的大图,在图片浏览时要先看小图,不可能每次在去把大图处理成小图吧!有时网站改下版小图尺寸变又要重新做图,这也忒麻烦了。在QQ相册里有我们就看到过这个技术。
asp它也可以实现而且特别简单: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"
%>
二、AspJpeg给图片加水印
<%
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open Server.MapPath("images/dodge_viper.jpg")
'开始写文字
Jpeg.Canvas.Font.Color = &000000 '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") '保存
%>
三、安全码
安全玛的道理和加水印差不多,这说的安全码就是验证码的意思。这个不一般不用aspJpeg都可以实现,网上也有很多这种代码,这我就不介绍了。
四、aspjpeg图片切割
一直以来,对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") 保存
怎么样,很简单吧
五、aspjpeg实例操作图片合并
我们这里是要把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"
Logo.Open LogoPath
Logo.Width = 70
Logo.Height = Logo.Width * Logo.OriginalHeight / Logo.OriginalWidth
Photo.DrawImage 0, 0, Logo
Photo.SendBinary 这里用了sendBinary的输出方法。当然,你也可以先保存更改后的dodge_viper.jpg,再输入也可以。我个人不大喜欢用sendBinary方法,在网速慢的时候容易出错。在速度方面也不怎样。呵呵。