四、圖片切割 . 一直以來,對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方法,在網(wǎng)速慢的時候容易出錯。在速度方面也不怎樣。 六、數(shù)據(jù)庫支持 . 這里不多說了。其實就是Binary方法,大家知道圖片存進數(shù)據(jù)庫只能存為二進制的文件的。所以代碼就懶的寫了。 . 七、更多方法介紹 . 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組件的預覽和水印生成------開始------ '創(chuàng)建預覽圖片: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原始文件的物理路徑。 '創(chuàng)建預覽圖的文件。 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 FileExt"gif" Then '//如果將這行改為IF ImageMode"" Then則可給上傳的GIF圖片也加上水印,但是那些動畫的GIF在加了水印以后就只剩第一楨了,根據(jù)你的需求酌情處理吧。 '//關于修改字體及文字顏色的。 '//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,所以這樣寫,你可以根據(jù)自己的圖片進行調整。0.5是透明度,我這里是半透明,1表示不透明,你也可以試試看0.7或者0.8的效果。 ogvbox.Canvas.Bar 0, 0, ogvbox.Width, ogvbox.Height '//水印可用的范圍。我這里表示左上角至右下角,即整張圖片的任意為止都可加水印。 ogvbox.Save Server.MapPath(imagename) '//根據(jù)以上參數(shù)生成增加水印后的圖片文件。 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組件的預覽和水印生成------結束------