主頁 > 知識庫 > 基于ASPJPEG 制作了一個夢寐已久的批量水印工具步驟

基于ASPJPEG 制作了一個夢寐已久的批量水印工具步驟

熱門標(biāo)簽:科大訊飛語音識別系統(tǒng) 銀行業(yè)務(wù) Mysql連接數(shù)設(shè)置 阿里云 服務(wù)器配置 Linux服務(wù)器 電子圍欄 團(tuán)購網(wǎng)站
一、為圖片添加水印
復(fù)制代碼 代碼如下:

%
Dim Jpeg ””//聲明變量
Set Jpeg = Server.CreateObject(“Persits.Jpeg”) ””//調(diào)用組件
Jpeg.Open Server.MapPath(“aaa.JPG”) ””//源圖片位置
Jpeg.Canvas.Font.Color = H000000 ””//水印字體顏色
Jpeg.Canvas.Font.Family = “宋體” ””//水印字體
Jpeg.Canvas.Font.Size = 14 ””//水印字體大小
Jpeg.Canvas.Font.Bold = False ””//是否粗體,粗體用:True
Jpeg.Canvas.Font.BkMode = HFFFFFF ””//字體背景顏色
Jpeg.Canvas.Print 10, 10, “不敗頑童工作室” ””//水印文字,兩個數(shù)字10為水印的xy座標(biāo)
Jpeg.Save Server.MapPath(“aaa_05.jpg”) ””//生成有水印的新圖片及保存位置
Set Jpeg = Nothing ””//注銷組件,釋放資源
Response.Write “img src=aaa_05.jpg>” ””//在該頁顯示生成水印后的圖片
%>

二、生成縮略圖
復(fù)制代碼 代碼如下:

%
Dim Jpeg ””//聲明變量
Set Jpeg = Server.CreateObject(“Persits.Jpeg”) ””//調(diào)用組件
Jpeg.Open Server.MapPath(“aaa.JPG”) ””//原圖位置
Jpeg.Width = Jpeg.OriginalWidth/4 ””//設(shè)圖片寬度為原圖的四分之一
Jpeg.Height = Jpeg.OriginalHeight/4 ””//設(shè)圖片高度為原圖的四分之一
Jpeg.Sharpen 1, 130 ””//設(shè)定銳化效果
Jpeg.Save Server.MapPath(“aaa_small.jpg”) ””//生成縮略圖位置及名稱
Set Jpeg = Nothing ””//注銷組件,釋放資源
Response.Write “img src=aaa_small.jpg>” ””//在該頁顯示生成縮略圖
%>
[code]
aspjpeg組件高級使用方法介紹
aspjpeg是一款非常強(qiáng)大的圖片處理組件,純英文版本。不過早已經(jīng)有免費(fèi)版和破解版,但是對其進(jìn)行詳細(xì)與深入介紹的文章卻是不多,即使有也只牽涉到圖片縮略和圖片水印??赡苁且?yàn)榧冇⑽牡木壒省?
這里我就是針對這些問題談?wù)刟spjpeg的高級用法。這里的技術(shù)主要包括:
圖片縮略
圖片水印
安全碼技術(shù)
圖片切割
圖片合并
數(shù)據(jù)庫支持
更多不常用的方法介紹
以及相關(guān)的一些實(shí)用技術(shù)
aspjpeg唯一點(diǎn)不足的就是輸出方式比較單一。在這里,我們主要談將圖片處理保存后再調(diào)用的這種輸出方法。另外,本人比較懶,所以有些代碼仍然引用于原文檔,不懂的地方偶會加以解釋!
學(xué)過vb或者.net的同志肯定一看就明白了。刷子來著。呵呵。
一、圖片縮略
[code]
%
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”
%>
[code]
IMG SRC=”images/clock_small.jpg”> 查看處理的圖片
二、圖片水印
[code]
%
Set Jpeg = Server.CreateObject(“Persits.Jpeg”)
Jpeg.Open Server.MapPath(“images/dodge_viper.jpg”)
開始寫文字
Jpeg.Canvas.Font.Color = H000000”” white 顏色
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ù)牡览砗图铀〔畈欢啵芏嗯笥褑栁乙唧w的代碼技術(shù),在這里我就寫出來和大家分享,一般人我還不告訴他。呵呵。
復(fù)制代碼 代碼如下:

%
生成安全碼的函數(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
%>

生成安全碼的圖片。當(dāng)然你要預(yù)先準(zhǔn)備一張背景圖哦
復(fù)制代碼 代碼如下:

%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í)有這樣的一個方法的
crop x1,y1,x2,y2
切割長方型左上角x坐標(biāo),y坐標(biāo) 右下角x坐標(biāo) y坐標(biāo)
下面我就做一個演示哈
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圖片上去
其實(shí),圖片合并的方法也可以用來動態(tài)打水印哦
復(fù)制代碼 代碼如下:

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,再輸入也可以。我個人不大喜歡用sendBinary方法,在網(wǎng)速慢的時候容易出錯。在速度方面也不怎樣。呵呵。
六、數(shù)據(jù)庫支持
這里不多說了。其實(shí)就是Binary方法,大家知道圖片存進(jìn)數(shù)據(jù)庫只能存為二進(jìn)制的文件的。所以代碼就懶的寫了。
七、更多方法介紹
復(fù)制代碼 代碼如下:

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坐標(biāo)設(shè)定
Canvas.Font.ShadowYOffset As Long
Y坐標(biāo)設(shè)定
Canvas.Font.BkMode As String
文字背景

========================================
今天給大家講的是ASP給圖片加水印的知識
ASP給圖片加水印是需要組件的…常用的有aspjpeg和中國人自己開發(fā)的wsImage…前者有30天的免費(fèi)…后者完全免費(fèi)…當(dāng)然我們要用國人的產(chǎn)品了..嘿嘿..
注冊組件的方法:
命令提示符下輸入”regsvr32 [Dll路徑]” 就可以了
圖片添加水印無非就是獲得圖片大小,然后把水印寫上去..ASP代碼只是起個控制組件的作用.用代碼來說明一切吧.
一:獲得圖片大小(這里是用象素值表示的.學(xué)PhotoShop的朋友都應(yīng)該明白)
復(fù)制代碼 代碼如下:

%
set obj=server.CreateObject(“wsImage.Resize”) ””””調(diào)用組件
obj.LoadSoucePic server.mappath(“25.jpg”) ””””打開圖片,圖片名字是25.jpg
obj.GetSourceInfo iWidth,iHeight
response.write “圖片寬度:” iWidth “br>” ””””獲得圖片寬度
response.write “圖片高度:” iHeight “br>” ””””獲得圖片高度
strError=obj.errorinfo
if strError>”" then
response.write obj.errorinfo
end if
obj.free
set obj=nothing
%>

二:添加文字水印
復(fù)制代碼 代碼如下:

%
set obj=server.CreateObject(“wsImage.Resize”)
obj.LoadSoucePic server.mappath(“25.jpg”) ””””裝載圖片
obj.Quality=75
obj.TxtMarkFont = “華文彩云” ””””設(shè)置水印文字字體
obj.TxtMarkBond = false ””””設(shè)置水印文字的粗細(xì)
obj.MarkRotate = 0 ””””水印文字的旋轉(zhuǎn)角度
obj.TxtMarkHeight = 25 ””””水印文字的高度
obj.AddTxtMark server.mappath(“txtMark.jpg”), “帶你離境”, H00FF00, 10, 70
strError=obj.errorinfo ””””生成圖片名字,文字顏色即水印在圖片的位置
if strError>”" then
response.write obj.errorinfo
end if
obj.free
set obj=nothing
%>

三:添加圖片水印
復(fù)制代碼 代碼如下:

%
set obj=server.CreateObject(“wsImage.Resize”)
obj.LoadSoucePic server.mappath(“25.jpg”) ””””裝載圖片
obj.LoadImgMarkPic server.mappath(“blend.bmp”) ””””裝載水印圖片
obj.Quality=75
obj.AddImgMark server.mappath(“imgMark.jpg”), 315, 220,hFFFFFF, 70
strError=obj.errorinfo ””””生成圖片名字,文字顏色即水印在圖片的位置
if strError>”" then
response.write obj.errorinfo
end if
obj.free
set obj=nothing
%>

其實(shí)給圖片添加水印就這么簡單.然后我在說下WsImage.dll組件的另外兩個主要用法.包括:
剪裁圖片,生成圖片的縮略圖.
還是以我得習(xí)慣,用代碼加注釋說明:
剪裁圖片:
復(fù)制代碼 代碼如下:

%
set obj=server.CreateObject(“wsImage.Resize”)
obj.LoadSoucePic server.mappath(“25.jpg”)
obj.Quality=75
obj.cropImage server.mappath(“25_crop.jpg”),100,10,200,200 ””””定義裁減大小和生成圖片名字
strError=obj.errorinfo
if strError>”" then
response.write obj.errorinfo
end if
obj.free
set obj=nothing
%>

詳細(xì)注釋:裁減圖片用到了WsImage的CropImage方法.其中定義生成圖片時候,100,10是左上角的裁減點(diǎn),即離圖片左邊是100象素,頂端10象素.后兩個200代表的是裁減的寬帶和高和高度.
生成圖片縮略圖:
復(fù)制代碼 代碼如下:

%
set obj=server.CreateObject(“wsImage.Resize”)
obj.LoadSoucePic server.mappath(“25.jpg”) ””””加載圖片
obj.Quality=75
obj.OutputSpic server.mappath(“25_s.jpg”),0.5,0.5,3 ””””定義縮略圖的名字即大小
strError=obj.errorinfo
if strError>”" then
response.write obj.errorinfo
end if
obj.free
set obj=nothing
%>

詳細(xì)說明:
產(chǎn)生縮略圖共有四種導(dǎo)出方式:
(1) obj.OutputSpic server.mappath(“25_s.jpg”),200,150,0
200為輸出寬,150為輸出高,這種輸出形式為強(qiáng)制輸出寬高,可能引起圖片變形。
(2) obj.OutputSpic server.mappath(“25_s.jpg”),200,0,1
以200為輸出寬,輸出高將隨比列縮放。
(3) obj.OutputSpic server.mappath(“25_s.jpg”),0,200,2
以200為輸出高,輸出寬將隨比列縮放。
(4) obj.OutputSpic server.mappath(“25_s.jpg”),0.5,0.5,3
第一個0.5表示生成的縮略圖是原圖寬的一半,即表示寬縮小比例。
第二個0.5表示生成的縮略圖是原圖高的一半,即表示高縮小比例。
寬高的縮小比例一致意味著將對原圖進(jìn)行比例縮小。寬高的縮放比例如果大于1,則對原圖進(jìn)行放大。
昨天晚上搞到12點(diǎn)半,早上起床繼續(xù)增強(qiáng)優(yōu)化,寫了這個ASP批量水印工具,這種水印效果是我夢寐已久的,甚爽!

aspjpeg水印

水印效果如下:

aspjpeg水印

您可能感興趣的文章:
  • aspJpeg圖片水印有雜點(diǎn)的完美解決方法
  • aspjpeg 添加水印教程及生成縮略圖教程
  • aspjpeg組件通用加水印函數(shù)代碼
  • asp水印組件之AspJpeg的結(jié)合代碼實(shí)例
  • 利用ASPUPLOAD,ASPJPEG實(shí)現(xiàn)圖片上傳自動生成縮略圖及加上水印
  • ASP程序給上傳的圖片增添水印效果!
  • asp圖片加水印的功能代碼

標(biāo)簽:江蘇 大理 衢州 萍鄉(xiāng) 棗莊 廣元 衡水 蚌埠

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于ASPJPEG 制作了一個夢寐已久的批量水印工具步驟》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266