网页编程 - Aspjpeg实例学习教程

Set objImg = Server.CreateObject("Persits.Jpeg")

objImg.Interpolation = 2  '影像加强 0-2

objImg.open xFilePath

response.write "<:::原始值:::>AspJpeg版本=" & objImg.Version & "宽=" & objImg.OriginalWidth & "像素" & "高=" & objImg.OriginalHeight & "像素"

response.write "品质=" & objImg.Quality & " (0-100)" & "路径=" & objImg.Version & ""

objImg.Width = objImg.OriginalWidth / 2  '变更图片宽度(范例为50%)

objImg.Height = objImg.OriginalHeight / 2  '变更图片高度(范例为50%)

objImg.Sharpen 2, 250  '锐利处理

objImg.Crop 0,0,150,150  '切割处理

objImg.FlipH  '左右翻转

objImg.FlipV  '上下翻转

objImg.RotateL  '向左旋转90度

objImg.RotateR  '向右旋转90度

' 将图片秀上文字:------------------------

objImg.Canvas.Font.Color = &HFF0000  '颜色

objImg.Canvas.Font.Family = "细明体"  '字型

objImg.Canvas.Font.Bold = True  '是否使用粗体

objImg.Canvas.Font.BkMode = False  '是否使用字体背景色

objImg.Canvas.Font.BkColor = &H000000  '字体背景色

objImg.Canvas.Font.Italic = False  '是否使用斜体字

objImg.Canvas.Font.Rotation = 0  '字体旋转角度

objImg.Canvas.Font.ShadowColor = &H000000  '字影颜色

objImg.Canvas.Font.ShadowXOffset = 50  '字影X坐标

objImg.Canvas.Font.ShadowYOffset = 150  '字影Y坐标

objImg.Canvas.Font.Size = 14  '字体大小

objImg.Canvas.Font.Underlined = True  '是否加底限

objImg.Canvas.Circle 100,100,10  '画圆圈

objImg.Canvas.Pen.Color = &H009900  '画圆的圆内填满颜色

objImg.Canvas.Pen.Width = 1  '画圆的圆周粗细值

objImg.Canvas.Ellipse 0,0,150,150  '画椭圆

objImg.Canvas.Line 0,0,150,150  '画线

'objImg.Canvas.Arc = 100,50,0,200  '---不清楚这个用法-- 

objImg.Canvas.Print 100, 100, "I am Odysseus" ,136  '位置及文字---------------------------------

' 编辑图片外框:----------------------------

objImg.Canvas.Pen.Color = &H000000  '图片外框颜色

objImg.Canvas.Pen.Width = 1  '图片外框宽度(像素)

objImg.Canvas.Brush.Solid = False  '是否使用区域内填满

objImg.Canvas.Brush.Color = &HFF0000  '区域内填满颜色

objImg.Canvas.Bar 5, 5, objImg.Width, objImg.Height  '框线产生位置------------------------------

objImg.save xFileCopyToPath

response.write "<:::变化后:::>宽=" & objImg.Width & "像素" & "高=" & objImg.Height & "像素"

Set objImg = Nothing

以下为相关的制作实例

一、图片缩略 

<% 

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="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("infos/random_pic/random_index.bmp") '保存 

%>&nbsp;<img src="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) 

画出一个长方形,上面有代码介绍了 

Canvas.Font.ShadowColor 

文字阴影颜色 

Canvas.Font.ShadowXOffset As Long 

阴影X坐标设定 

Canvas.Font.ShadowYOffset As Long 

Y坐标设定 

Canvas.Font.BkMode As String 

文字背景 

当然还有很多很多啦。我就不一一介绍了。相信这些工具够你用了吧。