网络编程
位置:首页>> 网络编程>> Asp编程>> aspjpeg组件安装问题(2)

aspjpeg组件安装问题(2)

  发布时间:2008-09-27 17:52:00 

标签:aspjpeg,组件,问题

8、如何用AspJpeg组件生成图片水印?

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

9、如何用AspJpeg组件进行图片合并?
AspJpeg 1.3+ enables you to place images on top of each other via the method DrawImage. To use this method, you must create two instances of the AspJpeg objects and populate both of them with images via calls to Open (or OpenBinary). When calling Canvas.DrawImage, the 2nd instance of AspJpeg is passed as an argument to this method, along with the X and Y offsets (in pixels): 
使用该方法,您必需创建两个AspJpeg实例对象

<%
Set Jpeg1 = Server.CreateObject("Persits.Jpeg")
Set Jpeg2 = Server.CreateObject("Persits.Jpeg")
Jpeg1.Open Server.MapPath("t.jpg")
Jpeg2.Open Server.MapPath("t1.jpg")
Jpeg1.Canvas.DrawImage 10, 10, Jpeg2 ' optional arguments omitted
jpeg1.save Server.mappath("tt.jpg")
%>

10、如何用AspJpeg组件进行图片切割?
AspJpeg 1.1+ is also capable of cutting off edges from, or cropping, the resultant thumbnails via the method Crop(x0, y0, x1, y1). The size of the cropped image is specified by the coordinates of the upper-left and lower-right corners within the resultant thumbnail, not the original large image. 

<%
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open Server.MapPath("t.jpg")
jpeg.Crop 20, 30, jpeg.Width - 20, jpeg.Height - 10 
jpeg.save Server.mappath("tt.jpg")
Response.write("<img src=tt.jpg>")
%>

11、如何用AspJpeg组件创建安全码?
创建安全码原理上和创建水印差不多。

<%
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("t.jpg") '打开准备的图片 
Jpeg.Canvas.Font.Color = &HFFFFFF 
Jpeg.Canvas.Font.Family = "Arial Black" 
Jpeg.Canvas.Font.Bold = false 
Jpeg.Canvas.PrintText 0, -2, random_num 
jpeg.save Server.MapPath("tt.jpg") '保存 
%> 
<img src="tt.jpg" border="0" align="absmiddle"> 

 

12、如何让AspJpeg组件支援数据库?

图片存进数据库只能以二进制数据保存,这里即利用AspJpeg的Binary方法,下面以两个AspJpeg用户手册上的代码为例,具体请参考AspJpeg用户手册:
Opening Images from Memory 

<% ' Using ADO, open database with an image blob
strConnect = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../db/aspjpeg.mdb")
Set rs = Server.CreateObject("adodb.recordset")
SQL = "select image_blob from images2 where id = " & Request("id")
rs.Open SQL, strConnect, 1, 3
Set Jpeg = Server.CreateObject("Persits.Jpeg")
' Open image directly from recordset
Jpeg.OpenBinary rs("image_blob").Value
' Resize
jpeg.Width = Request("Width")
' Set new height, preserve original aspect ratio
jpeg.Height = jpeg.OriginalHeight * jpeg.Width / jpeg.OriginalWidth
Jpeg.SendBinary
rs.Close
%> 
Output to Memory  
<%
...
Set rs = Server.CreateObject("adodb.recordset")
rs.Open "images", strConnect, 1, 3
rs.AddNew
rs("image_blob").Value = Jpeg.Binary
rs.Update
...
%>
0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com