2013年7月22日 星期一

ASP.Net: 把兩張圖片合而為一

Merge Two Images in ASP.Net

正在洽談的一個項目有需要把兩個圖案合而為一,於是做做實驗。客戶的服務器是 Windows Server 2003 運行 ASP.Net,實驗也是在這個平台上進行。我寫 ASP.Net 經驗寥寥可數,要在網上找點資料才能完成。花了一個小時,完成了測試。以下是 C# 程序:
//  Load coupon master image
var couponImage = Image.FromFile(_ROOT+_OUTPUT_FOLDER+_INPUT_FILE);
using (couponImage)  {

   var width = couponImage.Width;
   var height = couponImage.Height;

   //  Generate a random value
   Random random = new Random((int)DateTime.Now.Ticks);
   int randomNumber = random.Next(10, 99);

   var timeStamp = DateTime.Now.ToString("yyyyMMddhhmmss");
   var outputFile = _PREFIX+timeStamp+randomNumber+".jpg";

   using (var bitmap = new Bitmap(width, height))  {
      using (var canvas = Graphics.FromImage(bitmap))  {

         //  Load code image
         var codeImage = Image.FromFile(_ROOT+_OUTPUT_FOLDER+_INPUT_FILE);

         canvas.InterpolationMode = InterpolationMode.HighQualityBicubic;
         canvas.DrawImage(couponImage, new Rectangle(0, 0, width, height),
                          new Rectangle(0, 0, couponImage.Width, couponImage.Height),
                          GraphicsUnit.Pixel);
         canvas.DrawImage(codeImage, _CODE_X, _CODE_Y);
         canvas.Save();
      }

      try  {
         bitmap.Save(_ROOT+_OUTPUT_FOLDER+outputFile, ImageFormat.Jpeg);
      }  catch (Exception ex)  {
         Response.Write("Error...");
         return;
      }
   }

   Response.Write("<img src='"+outputFile+"' /><br>"+outputFile);
}

沒有留言: