aspjpeg組件手藝在ASP的利用實例

宣布日期 2012-03-17 16:46:26

能夠接納ASP的組件JPEG來做,能夠先做一個圖片,下面是你的網站LOGO相干的工具,而后將筆墨寫在下面,以下體例匯集了幾種體例,大師能夠參考一下。


aspjpeg的高等用法中,包羅以下經常使用手藝:
圖片縮略  圖片水印  寧靜碼手藝  圖片切割  圖片歸并  數據庫撐持等。

 

aspjpeg獨一點缺乏的便是輸出體例比擬單一。在這里,咱們首要談將圖片處置保管后再挪用的這類輸出體例。別的,本身比擬懶,以是有些代碼依然援用于原文檔,不懂的處所偶會加以詮釋!


學過vb或.net的同道必定一看就大白了。刷子來著。呵呵。

一、圖片縮略

<%
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"
%>
檢查處置的圖片


二、圖片水印

<%
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") 保管
%>


三、寧靜碼

寧靜瑪的事理和加水印差未幾,良多伴侶問我要詳細的代碼手藝,在這里和大師分享。
<%
天生寧靜碼的函數
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") 保管
%>

本身做做看。呵呵。


四、圖片切割

一向以來,對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"
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體例,在網速慢的時辰輕易犯錯。在速率方面也不如何。


六、數據庫撐持

這里未幾說了。實在便是Binary體例,大師曉得圖片存進數據庫只能存為二進制的文件的。

 

七、更多體例先容

Canvas.Line(Left, Top, Right, Bottom)
畫一條直線
Canvas.Ellipse(Left, Top, Right, Bottom)
畫出一個橢圓
Canvas.Circle(X, Y, Radius)
畫出一個圓
Canvas.Bar(Left, Top, Right, Bottom)
畫出一個長方形,下面有代碼先容了
Canvas.Font.ShadowColor
筆墨暗影色彩
Canvas.Font.ShadowXOffset As Long
暗影X坐標設定
Canvas.Font.ShadowYOffset As Long
Y坐標設定
Canvas.Font.BkMode As String
筆墨背景