aspjpeg是一款非常強(qiáng)大的圖片處理組件,純英文版本。不過早已經(jīng)有免費(fèi)版和破解版,但是對其進(jìn)行詳細(xì)與深入介紹的文章卻是不多,即使有也只牽涉到圖片縮略和圖片水印??赡苁且?yàn)榧冇⑽牡木壒省?
使用aspjepg主要可以做到:
圖片縮略
圖片水印
安全碼技術(shù)
圖片切割
圖片合并
數(shù)據(jù)庫支持
一、圖片縮略 .
%
Set Jpeg = Server.CreateObject("Persits.Jpeg") 調(diào)用組件
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 = 000000'' red 顏色
Jpeg.Canvas.Font.Family = "Courier New" 字體
Jpeg.Canvas.Font.Bold = True 是否加粗
Jpeg.Canvas.Print 10, 10, "Copyright (c) XYZ, Inc."
打印坐標(biāo)x 打印坐標(biāo)y 需要打印的字符
以下是對圖片進(jìn)行邊框處理
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坐標(biāo) 起始Y坐標(biāo) 輸入長度 輸入高度
Jpeg.Save Server.MapPath("images/dodge_viper_framed.jpg") 保存
%> .
三、安全碼 .
安全瑪?shù)牡览砗图铀〔畈欢唷?
%
生成安全碼的函數(shù)
function make_randomize(max_len,w_n) max_len 生成長度,w_n:0 可能包含字母,1:只為數(shù)字
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位數(shù)字的安全碼
session("random_num")=random_num 為什么調(diào)用session,沒有session的安全碼是完全沒有意義的。呵呵 .
Set Jpeg = Server.CreateObject("Persits.Jpeg") 調(diào)用組件
Jpeg.Open Server.MapPath("infos/random_pic/random_index.gif") 打開準(zhǔn)備的圖片
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">
四、圖片切割 .
一直以來,對aspjpeg不了解的人以為是無法用它來進(jìn)行切割的。
其實(shí)有這樣的一個(gè)方法的
crop x1,y1,x2,y2
切割長方型左上角x坐標(biāo),y坐標(biāo) 右下角x坐標(biāo) y坐標(biāo)
下面我就做一個(gè)演示哈
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 開始切割其實(shí)是把超過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"
Logo.Open LogoPath .
Logo.Width = 70
Logo.Height = Logo.Width * Logo.OriginalHeight / Logo.OriginalWidth .
Photo.DrawImage 0, 0, Logo .
Photo.SendBinary 這里用了sendBinary的輸出方法。當(dāng)然,你也可以先保存更改后的dodge_viper.jpg,再輸入也可以。我個(gè)人不大喜歡用sendBinary方法,在網(wǎng)速慢的時(shí)候容易出錯(cuò)。在速度方面也不怎樣。
六、數(shù)據(jù)庫支持 .
這里不多說了。其實(shí)就是Binary方法,大家知道圖片存進(jìn)數(shù)據(jù)庫只能存為二進(jìn)制的文件的。所以代碼就懶的寫了。 .
七、更多方法介紹 .
Canvas.Line(Left, Top, Right, Bottom)
畫一條直線
Canvas.Ellipse(Left, Top, Right, Bottom)
畫出一個(gè)橢圓
Canvas.Circle(X, Y, Radius)
畫出一個(gè)圓
Canvas.Bar(Left, Top, Right, Bottom)
畫出一個(gè)長方形,上面有代碼介紹了
Canvas.Font.ShadowColor
文字陰影顏色
Canvas.Font.ShadowXOffset As Long
陰影X坐標(biāo)設(shè)定
Canvas.Font.ShadowYOffset As Long
Y坐標(biāo)設(shè)定
Canvas.Font.BkMode As String
文字背景 .