aspjpeg是一款非常強大的圖片處理元件,純英文版本。不過早已經有免費版和破解版,但是對其進行詳細與深入介紹的文章卻是不多,即使有也只牽涉到圖片縮略和圖片浮水印。可能是因為純英文的緣故。
使用aspjepg主要可以做到:
圖片縮略
圖片浮水印
安全碼技術
圖片切割
圖片合併
資料庫支援
一、圖片縮略.
查看處理的圖片.
二、圖片浮水印.
.
三、安全碼
.
安全瑪的道理和加水印差不多。
.
產生安全碼的圖片。
四、圖片切割
.
一直以來,對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
文字背景.
'//------Pollener.com AspJpeg元件的預覽與浮水印產生------開始------
'建立預覽圖:call
CreateView(原始檔案的路徑,預覽檔名及路徑)
Sub
CreateView(imagename,tempFilename)
'定義變數。
Dim
PreviewImageFolderName
Dim ogvbox,objFont
Dim Logobox,LogoPath
LogoPath
= Server.MapPath(images) & /shuiyin.gif
'//加入圖片所在路徑及檔案名稱(我的是論壇/images/shuiyin.gif)。
Select Case
upload_ViewType
Case
0
'---------------------CreatePreviewImage---------------
set ogvbox =
Server.CreateObject(CreatePreviewImage.cGvbox)
ogvbox.SetSavePreviewImagePath=Server.MapPath(tempFilename)
'預覽圖存放路徑。
ogvbox.SetPreviewImageSize =SetPreviewImageSize
'預覽圖寬度。
ogvbox.SetImageFile = trim(Server.MapPath(imagename))
'imagename原始檔案的實體路徑。
'建立預覽圖的檔案。
If
ogvbox.DoImageProcess=false Then
Response.write 產生預覽圖錯誤:&
ogvbox.GetErrString
End If
Case
1
'---------------------AspJpegV1.2---------------
Set Logobox =
Server.CreateObject(Persits.Jpeg)
'//建議不要圖片和文字浮水印同時使用,本代碼為使用圖片浮水印。
Logobox.Open
LogoPath '//讀取新增的圖片。
'//重新設定圖片的大小。
Logobox.Width = 186
'//用做水印的圖片的寬度值(像素)。
Logobox.Height = 52
'//用做浮水印的圖片的高度值(像素)。
'//添加浮水印。
Set ogvbox =
Server.CreateObject(Persits.Jpeg)
'//讀取要處理的原始檔案。
ogvbox.Open
Trim(Server.MapPath(imagename))
If ogvbox.OriginalWidth and FileExtgif Then '//如果將這行改為IF
ImageMode
Then則可為上傳的GIF圖片也加上浮水印,但是那些動畫的GIF在加了水印以後就只剩第一楨了,根據你的需求酌情處理吧。
'//關於修改字體及文字顏色的。
'//ogvbox.Canvas.Font.Color
= &H0000FF '//水印文字的顏色,&H後面輸入色彩值。
'//ogvbox.Canvas.Font.Size =
18 '//水印文字的大小。
'//ogvbox.Canvas.Font.Family = Arial
'//水印文字的字體名稱。
'//ogvbox.Canvas.Font.ShadowColor = &H000000
'//水印文字的陰影色彩。
'//ogvbox.Canvas.Font.ShadowXoffset = 1
'//水印文字陰影向右偏移的像素值,輸入負值則向左偏移。
'//ogvbox.Canvas.Font.ShadowYoffset = 1
'//水印文字陰影向下偏移的像素值,輸入負值則向右偏移。
'//ogvbox.Canvas.Font.Quality = 3
'//水印文字的清晰度,從0~4,變換不是很大,建議用2或3。
'//ogvbox.Canvas.Font.Bold = True
'//水印文字是否為粗體,True=粗體False=正常。
'ogvbox.Canvas.Print 10, 10,
ImageMode '//水印文字的起始座標(像素)。
ogvbox.Canvas.Pen.Color =
&H000000 '//增加浮水印後圖片的邊框色彩。
ogvbox.Canvas.Pen.Width = 1
'//增加水印後圖片的邊框寬度。
ogvbox.Canvas.Brush.Solid = False
'//邊框內是否填滿顏色,你可以試試看值為True時的效果^o^
ogvbox.DrawImage ogvbox.width-186,
ogvbox.height-52, Logobox, 0.5 '//水印圖片的起始座標,我這裡ogvbox.width-186,
ogvbox.height-52,表示圖片在右下角,因為我的圖片寬是186,高是52,所以這樣寫,你可以根據自己的圖片進行調整。 0.5是透明度,我這裡是半透明,1表示不透明,你也可以試試看0.7或0.8的效果。
ogvbox.Canvas.Bar
0, 0, ogvbox.Width, ogvbox.Height
'//水印可用的範圍。我這裡表示左上角至右下角,也就是整張圖片的任意為止都可加浮水印。
ogvbox.Save
Server.MapPath(imagename) '//根據上述參數產生增加浮水印後的圖片檔案。
End
If
ogvbox.Width = ImageWidth
ogvbox.height =
ImageHeight
'ogvbox.height =
ogvbox.Originalheight*ImageWidth/ogvbox.OriginalWidth
ogvbox.Sharpen 1, 120
ogvbox.Save
Server.MapPath(tempFilename) '//產生增加浮水印後的圖片的預覽圖。
End
If
Set Logobox=Nothing
'//------Pollener.com
AspJpeg元件的預覽和浮水印產生------結束-----