熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

在ASP.NET中為圖像加入版權信息

2013-11-13 10:30:00  來源: .NET編程 

  你試過來進行圖像處理嗎?公司最近進行的一個項目數據庫中存入了很多的產品圖片可是都沒有版權信息當時客戶要求將所有的圖片打上公司名稱?這時候你該怎麼辦?

  雖說我還是江湖嫩手可是對這一問題的解決方案還是很多歸結如下

  使用圖形處理軟件如Photoshop等利用其批處理功能可以實現這個功能可是每次數據錄入員加進圖片的話還得加工一下圖片很麻煩的看錄入員大姐平常對我很不錯每日笑臉相迎能忍心折磨她麼?這個方案否決了

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

  using SystemDrawing;

  using SystemIO;

  using SystemDrawingImaging;

  private void AddTextToImg(string fileNamestring text)

  {

  if(!FileExists(MapPath(fileName)))

  {

  throw new FileNotFoundException(The file dont exist!);

  }

  if( text == stringEmpty )

  {

  return;

  }

  //還需要判斷文件類型是否為圖像類型這裡就不贅述了

  SystemDrawingImage image = SystemDrawingImageFromFile(MapPath(fileName));

  Bitmap bitmap = new Bitmap(imageimageWidthimageHeight);

  Graphics g = GraphicsFromImage(bitmap);

  float fontSize = f; //字體大小

  float textWidth = textLength*fontSize; //文本的長度

  //下面定義一個矩形區域以後在這個矩形裡畫上白底黑字

  float rectX = ;

  float rectY = ;

  float rectWidth = textLength*(fontSize+);

  float rectHeight = fontSize+;

  //聲明矩形域

  RectangleF textArea = new RectangleF(rectXrectYrectWidthrectHeight);

  Font font = new Font(宋體fontSize); //定義字體

  Brush whiteBrush = new SolidBrush(ColorWhite); //白筆刷畫文字用

  Brush blackBrush = new SolidBrush(ColorBlack); //黑筆刷畫背景用

  gFillRectangle(blackBrushrectXrectYrectWidthrectHeight);

  gDrawString(textfontwhiteBrushtextArea);

  MemoryStream ms = new MemoryStream( );

  //保存為Jpg類型

  bitmapSave(msImageFormatJpeg);

  //輸出處理後的圖像這裡為了演示方便我將圖片顯示在頁面中了

  ResponseClear();

  ResponseContentType = image/jpeg;

  ResponseBinaryWrite( msToArray() );

  gDispose();

  bitmapDispose();

  imageDispose();

  }

  調用時很簡單

  AddTextToImg(mejpgFamilyMan);

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


From:http://tw.wingwit.com/Article/program/net/201311/13828.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.