ASP.NET(C#)下使用AspJpeg組件

來源:互聯網
上載者:User

轉自http://hpping.hdut.com/info/113/46284111.aspx

一、為圖片添加浮水印
//執行個體化組件
ASPJPEGLib.IASPJpeg objJpeg = new ASPJPEGLib.ASPJpeg();
//開啟源圖片檔案
objJpeg.Open(Server.MapPath("aaa.JPG"));
//添加浮水印文字
objJpeg.Canvas.Font.Color = 0xFF0000; // 浮水印字型顏色
objJpeg.Canvas.Font.Family = "Courier New";//浮水印字型
objJpeg.Canvas.Font.Size = 14;//浮水印字型大小
objJpeg.Canvas.Font.Bold = 1; // 是否粗體,粗體用:True(1),False(0)
objJpeg.Canvas.Font.Quality = 4; // 品質
objJpeg.Canvas.Font.BkMode = "Opaque"; // 字型背景顏色,這裡為透明(Opaque)

objJpeg.Canvas.Print( 10, 10, "Copyright (c) Hdut.Com", Missing.Value );//浮水印文字,兩個數字10為浮水印的xy座標
objJpeg.Save( Server.MapPath("aaa_water.jpg") );
objJpeg = null;//登出組件,釋放資源

===============================================================================================

二、產生縮圖
//執行個體化組件
ASPJPEGLib.IASPJpeg objJpeg = new ASPJPEGLib.ASPJpeg();
//開啟源圖片檔案
objJpeg.Open(Server.MapPath("aaa.JPG"));
//對圖片進行50%操作
objJpeg.Width = objJpeg.OriginalWidth / 2;
objJpeg.Height = objJpeg.OriginalHeight / 2;
//如果必要進行銳利化
objJpeg.Sharpen(1, 130 );
objJpeg.Save(Server.MapPath("aaa_small.jpg"));//產生縮圖位置及名稱
objJpeg = null;//登出組件,釋放資源

===============================================================================================

三、安全碼

安全碼的道理和加浮水印差不多,很多朋友問我要具體的代碼技術,在這裡我就寫出來和大家分享,一般人我還不告訴他。呵呵。
產生安全碼的圖片。當然你要預先準備一張背景圖哦

//得到4位元的驗證碼
Random rd = new Random();
Session["random_num"] = rd.Netx(1000,9999);
//執行個體化組件
ASPJPEGLib.IASPJpeg objJpeg = new ASPJPEGLib.ASPJpeg();
//開啟背景圖片檔案
objJpeg.Open(Server.MapPath("back.JPG"));
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("random_index.jpg")) //儲存
<img src="random_index.jpg" border="0" align="absmiddle">
自己做做看。呵呵。

===============================================================================================

四、圖片切割

一直以來,對aspjpeg不瞭解的人以為是無法用它來進行切割的。
其實有這樣的一個方法的:crop(x1,y1,x2,y2)
切割長方型左上方x座標,y座標 右下角x座標 y座標

//執行個體化組件
ASPJPEGLib.IASPJpeg objJpeg = new ASPJPEGLib.ASPJpeg();
//開啟圖片檔案
objJpeg.Open(Server.MapPath("aaa.JPG"));
objJpeg.width=70
objJpeg.Height = objJpeg.OriginalHeight*70;
objJpeg.crop(0,0,70,52);//開始切割其實是把超過52象素的下部分去掉
objJpeg.save(server.MapPath("aaa_1.gif"));//儲存
怎麼樣,很簡單吧

===============================================================================================

五、圖片合并

我們這裡是要把logo圖片加到aaa.jpg圖片上去
其實,圖片合并的方法也可以用來動態打浮水印哦

//執行個體化組件
ASPJPEGLib.IASPJpeg objJpeg = new ASPJPEGLib.ASPJpeg();
//開啟圖片檔案
objJpeg.Open(Server.MapPath("aaa.JPG"));
//執行個體化logo組件
ASPJPEGLib.IASPJpeg logo = new ASPJPEGLib.ASPJpeg();
//開啟logo圖片檔案
logo.Open(Server.MapPath("logo.JPG"));
Logo.Width = 70;
Logo.Height = Logo.Width * Logo.OriginalHeight / Logo.OriginalWidth;//重新定義大小
//將logo合并到圖片中去
objJpeg.DrawImage(0, 0, Logo);

補充說明:
DrawImage(int x,int y,ASPJPEGLib.ASPJpeg Image,object Opacity,object TranspColor,object Deviation)
x:           橫座標
y:           縱座標
Image:       圖片
Opacity:     預設為1,使用透明,可取值為0,1
TranspColor: 透明顏色,十六進位
Deviation:   透明值(0-255),預設為0
===============================================================================================

這裡建議使用:objJpeg.Canvas.DrawPNG(x,y,Server.MapPath("/images/hhdut.png"));
這樣不僅快些,而且不會出錯

六、資料庫支援

//執行個體化組件
ASPJPEGLib.IASPJpeg objJpeg = new ASPJPEGLib.ASPJpeg();
// 開啟圖片資料來源
object obj = eData.GetData("select images from img where id=12");
objJpeg.OpenBinary(obj);
//將圖片顯示出來
objJpeg.SendBinary( Missing.Value );

objJpeg.SendBinary 這裡用了SendBinary的輸出方法。當然,你也可以先儲存更改後的aaa.jpg,再輸入也可以。我個人不大喜歡用SendBinary方法,在網速慢的時候容易出錯。在速度方面也不怎樣。呵呵。

===============================================================================================

七、更多方法介紹

//畫一條直線
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;
//陰影X座標設定
int64 Canvas.Font.ShadowXOffset;
//Y座標設定
int64 Canvas.Font.ShadowYOffset;
//文字背景
String Canvas.Font.BkMode;

========================================================

相關檔案下載:http://files.cnblogs.com/wangpei/AspJpegDLL.rar

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.