aspjpeg進階使用方法

來源:互聯網
上載者:User
aspjpeg|進階 #############################################################
# 本文著作權屬於雨浪,未經聲明請不要到處轉載 #
# 以前發的文章轉的到處都是,其實國外有很多好東西,關鍵是 #
# 不要怕英語,更重要的是敢於接受新東東,國內就是一鍋抄 #
# 大家想找我的也可以加我QQ270499458,本人Vb.net程式員 #
# 以前是政法系出來的,學了半年電腦, 就轉行了做它了 #
#############################################################


aspjpeg是一款非常強大的圖片處理組件,純英文版本。不過早已經有免費版和破解版,但是對其進行詳細與深入介紹的文章卻是不多,即使有也只牽涉到圖片縮減和圖片浮水印。可能是因為純英文的緣故。這裡我就是針對這些問題談談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"
%>
<IMG SRC=http://www.163design.net/a/f/"images/clock_small.jpg"> 查看處理的圖片
二、圖片浮水印
<%
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open Server.MapPath("images/dodge_viper.jpg")
開始寫文字
Jpeg.Canvas.Font.Color = &HFF0000' 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(http://www.163design.net/a/f/"infos/random_pic/random_index.bmp") 儲存
%> <img src=http://www.163design.net/a/f/"infos/random_pic/random_index.bmp" border="0" align="absmiddle">
自己做做看。呵呵。
不想做背景圖片的。去http://comapny.windowscar.com/infos/random_pic/random_index.gif下載吧
四、圖片切割
一直以來,對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)
畫出一個長方形,上面有代碼介紹了


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.