AspJpeg组件的用法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AspJpeg组件的用法
ASPJPEG是一款功能相当强大的图象处理组件,用它可以轻松地做出图片的缩略图和为图片加上水印功能。
1、为图片制作缩略图
<% ' 建立实例
Dim Jpeg,Path
Set Jpeg = Server.CreateObject("Persits.Jpeg")
' 图片所在位置
Path = Server.MapPath("images") & "\clock.jpg"
' 打开
Jpeg.Open Path
' 设置缩略图大小(这里比例设定为50%)
Jpeg.Width = Jpeg.OriginalWidth / 2
Jpeg.Height = Jpeg.OriginalHeight / 2
' 保存缩略图到指定文件夹下
Jpeg.Save Server.MapPath("images") &
"\clock_small.jpg"
' 注销实例
Set Jpeg = Nothing
%>
<IMG SRC="images/clock.jpg"><P>
<IMG SRC="images/clock_small.jpg">
2、为图片加入水印功能
<%
Dim Jpeg
' 建立实例
Set Jpeg = Server.CreateObject("Persits.Jpeg")
' 打开目标图片
Jpeg.Open Server.MapPath("images/dodge_viper.jpg") ' 添加文字水印
Jpeg.Canvas.Font.Color = &HFF0000' 红色Jpeg.Canvas.Font.Family = "宋体"
Jpeg.Canvas.Font.Bold = True
Jpeg.Canvas.Print 10, 10, "Copyright (c) " ' 保存文件
Jpeg.Save
Server.MapPath("images/dodge_viper_framed.jpg")
' 注销对象
Set Jpeg = Nothing
%>
' Aspjpeg 功能设置
Set Jpeg = Server.CreateObject("Persits.Jpeg")
' 获取源图片路径
Path =
Server.MapPath("uploadimages/")&"/"&FileNam e
' 打开源图片
Jpeg.Open Path
' 设定生成缩略图细节这里有很多种设定方法下面的方法是先判断宽高比然后按比例缩放
If Jpeg.OriginalWidth / Jpeg.OriginalHeight > 1 then Jpeg.Width = 98
Jpeg.Height =
int((98/Jpeg.OriginalWidth)*Jpeg.OriginalHeight)
elseif Jpeg.OriginalWidth / Jpeg.OriginalHeight < 1 then Jpeg.Width = 98
Jpeg.Height= int((98/Jpeg.OriginalWidth)*Jpeg.Height) end if
' 设定锐化效果
Jpeg.Sharpen 1, 130
' 向指定路径生成缩略图
Jpeg.Save
Server.MapPath("uploadimages/")&"/small"&File Name
ASPJPEG文字水印对图片描边:
<%
Set Jpeg = Server.CreateObject("Persits.Jpeg")
' 创建组件
Jpeg.Open Server.MapPath("images.jpg")
' 打开图片
'也可以用OpenBinary读取二进制数据
' 以下是写入水印文字
Jpeg.Canvas.Font.Color = &H000000 ' 颜色,这里是设置成:黑
Jpeg.Canvas.Font.Family = "宋体" 'family设置字体Jpeg.Canvas.Font.Bold = True '是否设置成粗体
Jpeg.Canvas.Font.Size = 12 '字体大小
Jpeg.Canvas.Print 100, 100, "" '在相应的位置打印文字,如果靠右可以用Jpeg.Canvas.Print Jpeg.width-160, Jpeg.height-30, ""
Jpeg.Save Server.MapPath("images.jpg") 'OK,大功告成,输入保存!
二、ASPJPEG对图片描边
<%
Set Jpeg = Server.CreateObject("Persits.Jpeg")
' 创建组件
Jpeg.Open Server.MapPath("images.jpg")
' 打开图片
'也可以用OpenBinary读取二进制数据
'下面是对图片进行描边处理
Jpeg.Canvas.Pen.Color = &H000000 ' 颜色
Jpeg.Canvas.Pen.Width = 2 '描边像素:单位pix
Jpeg.Canvas.Brush.Solid = False ' 如果要描边,这里不能设成"真",否则整个区域会被填充为上面的颜色
Jpeg.Canvas.Bar 1, 1, Jpeg.Width, Jpeg.Height '描边的位置及对应宽度
Jpeg.Save Server.MapPath("images.jpg") 'OK,大功告成,输入保存!
%>
三、ASPJPEG改变图片大小,即缩略图功能:
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Path = Server.MapPath("images") & "\clock.jpg" Jpeg.Open Path
Jpeg.Width = Jpeg.OriginalWidth / 2
Jpeg.Height = Jpeg.OriginalHeight / 2
'改变成原来的50%,Jpeg.Width,Jpeg.Height也可以给他准确的数值,比如Jpeg.Width=120
Jpeg.Save Server.MapPath("images") &
"\clock_small.jpg"
%>
然后在ASP代码里增加一点点代码即可,增加的位置可以放在上传图片完成后,取得图片地址,进行修改。
对于Z-Blog的使用者,直接将下面代码复制到c_system_lib.asp 文件的TUpLoadFile类中的Upload函数的结尾即可实现水印功能。
1、为图片加入水印功能
Dim Jpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg") ' 建立对象
Jpeg.Open BlogPath & "/upload/" & FileName ' 图片所在位置
Jpeg.Canvas.Font.Color = &H000000 ' 颜色,这里是设置成:黑
Jpeg.Canvas.Font.Family = "方正隶变简体" ' 设置字体Jpeg.Canvas.Font.Bold = False '是否设置成粗体
Jpeg.Canvas.Font.Size = 26 '字体大小
Jpeg.Canvas.Font.Quality = 4 ' 文字清晰度
Jpeg.Canvas.Print
Jpeg.OriginalWidth/2-170,Jpeg.OriginalHeight-30, "" '水印文字
Jpeg.Save BlogPath & "/upload/" & FileName ' 保存文件
Set Jpeg = Nothing
2、为图片制作缩略图
Dim Jpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg") ' 建立对象
Jpeg.Open BlogPath & "/upload/" & FileName ' 图片所在位置
Jpeg.Width = Jpeg.OriginalWidth / 2
Jpeg.Height = Jpeg.OriginalHeight / 2
' 设置缩略图大小(这里比例设定为50%),也可以给他准确的数值,比如Jpeg.Width=120
Jpeg.Save BlogPath & "/upload/" & FileName ' 保存文件
Set Jpeg = Nothing
5、如何创建一个AspJpeg实例?
Set Jpeg = Server.CreateObject("Persits.Jpeg")
6、如何查看到期时间(是否注册成功)?
Set Jpeg = Server.CreateObject("Persits.Jpeg") Response.Write Jpeg.Expires
注册成功则到期时间为:9999-9-9
否则为:安装日期加1个月期限
7、如何用AspJpeg组件生成图片缩略图?
以下是引用片段:
<%
Set Jpeg = Server.CreateObject("Persits.Jpeg") '创建实例
Path = Server.MapPath("../images/apple.jpg") '处理图片路径
Jpeg.Open Path '打开图片
'调整宽度和高度为原来的50%
Jpeg.Width = Jpeg.OriginalWidth / 2
Jpeg.Height = Jpeg.OriginalHeight / 2
Jpeg.Save Server.MapPath("apple_small.jpg") '保
存图片到磁盘
Jpeg.Close:Set Jpeg = Nothing
%>
8、如何用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") 保存%>
9、如何用AspJpeg组件进行图片合并?
AspJpeg 1.3+ enables you to place images on top of each other via the method DrawImage. To use this method, you must
create two instances of the AspJpeg objects and populate both of them with images via calls to Open (or OpenBinary).
When calling Canvas.DrawImage, the 2nd instance of AspJpeg is passed as an argument to this method, along with the X
and Y offsets (in pixels):
使用该方法,您必需创建两个AspJpeg实例对象
以下是引用片段:
<%
Set Jpeg1 = Server.CreateObject("Persits.Jpeg")
Set Jpeg2 = Server.CreateObject("Persits.Jpeg")
Jpeg1.Open Server.MapPath("t.jpg")
Jpeg2.Open Server.MapPath("t1.jpg")
Jpeg1.Canvas.DrawImage 10, 10, Jpeg2 ' optional arguments omitted
jpeg1.save Server.mappath("tt.jpg")
%>
10、如何用AspJpeg组件进行图片切割?
AspJpeg 1.1+ is also capable of cutting off edges from, or cropping, the resultant thumbnails via the method Crop(x0, y0, x1, y1). The size of the cropped image is specified by the coordinates of the upper-left and lower-right corners within the resultant thumbnail, not the original large image. 以下是引用片段:
<%
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open Server.MapPath("t.jpg")
jpeg.Crop 20, 30, jpeg.Width - 20, jpeg.Height - 10
jpeg.save Server.mappath("tt.jpg")
Response.write("<img src=tt.jpg>")
%>
11、如何用AspJpeg组件创建安全码?
创建安全码原理上和创建水印差不多。
以下是引用片段:
<%
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("t.jpg") '打开准备的图片Jpeg.Canvas.Font.Color = &HFFFFFF
Jpeg.Canvas.Font.Family = "Arial Black"
Jpeg.Canvas.Font.Bold = false
Jpeg.Canvas.PrintText 0, -2, random_num
jpeg.save Server.MapPath("tt.jpg") '保存
%>
<img src="tt.jpg" border="0" align="absmiddle"> 12、如何让AspJpeg组件支援数据库?
图片存进数据库只能以二进制数据保存,这里即利用AspJpeg的Binary方法,下面以两个AspJpeg用户手册上的代码为例,具体请参考AspJpeg用户手册:
Opening Images from Memory
以下是引用片段:
<% ' Using ADO, open database with an image blob strConnect = "DRIVER={Microsoft Access Driver
(*.mdb)};DBQ=" &
Server.MapPath("../db/aspjpeg.mdb")
Set rs = Server.CreateObject("adodb.recordset")
SQL = "select image_blob from images2 where id = "
& Request("id")
rs.Open SQL, strConnect, 1, 3
Set Jpeg = Server.CreateObject("Persits.Jpeg") ' Open image directly from recordset
Jpeg.OpenBinary rs("image_blob").Value
' Resize
jpeg.Width = Request("Width")
' Set new height, preserve original aspect ratio jpeg.Height = jpeg.OriginalHeight * jpeg.Width / jpeg.OriginalWidth
Jpeg.SendBinary
rs.Close
%>
Output to Memory
以下是引用片段:
<%
...
Set rs = Server.CreateObject("adodb.recordset") rs.Open "images", strConnect, 1, 3
rs.AddNew
rs("image_blob").Value = Jpeg.Binary
rs.Update
...
%>。