在ASP.NET 中為映像加入著作權資訊

來源:互聯網
上載者:User
asp.net 你試過用.net來進行影像處理嗎?公司最近進行的一個項目,資料庫中存入了很多的產品圖片,可是都沒有著作權資訊,當時客戶要求將所有的圖片打上公司名稱?這時候,你該怎麼辦?

  雖說我還是江湖嫩手,可是對這一問題的解決方案還是很多,歸結如下:
  1.使用圖形處理軟體,如Photoshop等,利用其批處理功能,可以實現這個功能,可是每次資料錄入員加進圖片的話,還得加工一下圖片,很麻煩的,看錄入員大姐平常對我很不錯,每日笑臉相迎,能忍心折磨她嗎?這個方案否決了。

  2.使用.net行雲流水般的影像處理,當錄入員大姐上傳圖片的時候,就自動加上公司標記,這樣豈不更好,嗯,這想法不錯,可以進入2005最佳解決方案第萬強了,好說幹就幹。

using System.Drawing;
using System.IO;
using System.Drawing.Imaging;

private void AddTextToImg(string fileName,string text)
{
 if(!File.Exists(MapPath(fileName)))
 {
  throw new FileNotFoundException("The file don't exist!");
 }

 if( text == string.Empty )
 {
  return;
 }
 //還需要判斷檔案類型是否為映像類型,這裡就不贅述了

 System.Drawing.Image image = System.Drawing.Image.FromFile(MapPath(fileName));
 Bitmap bitmap = new Bitmap(image,image.Width,image.Height);
 Graphics g = Graphics.FromImage(bitmap);

 float fontSize = 12.0f; //字型大小
 float textWidth = text.Length*fontSize; //文本的長度
 //下面定義一個矩形地區,以後在這個矩形裡畫上白底黑字
 float rectX = 0;
 float rectY = 0;
 float rectWidth = text.Length*(fontSize+8);
 float rectHeight = fontSize+8;
 //聲明矩形域
 RectangleF textArea = new RectangleF(rectX,rectY,rectWidth,rectHeight);

 Font font = new Font("宋體",fontSize); //定義字型
 Brush whiteBrush = new SolidBrush(Color.White); //白筆刷,畫文字用
 Brush blackBrush = new SolidBrush(Color.Black); //黑筆刷,畫背景用

 g.FillRectangle(blackBrush,rectX,rectY,rectWidth,rectHeight);

 g.DrawString(text,font,whiteBrush,textArea);
 MemoryStream ms = new MemoryStream( );
 //儲存為Jpg類型
 bitmap.Save(ms,ImageFormat.Jpeg);

 //輸出處理後的映像,這裡為了示範方便,我將圖片顯示在頁面中了
 Response.Clear();
 Response.ContentType = "image/jpeg";
 Response.BinaryWrite( ms.ToArray() );

 g.Dispose(); 
 bitmap.Dispose();
 image.Dispose();
}

  調用時很簡單,

  AddTextToImg("me.jpg","Family.Man");

  這些功能在Asp中可是奢侈品了,而在.Net環境中卻能輕而易舉完成!



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。