2011-01-23 24 views
1

ユーザが2MBの画像をアップロードし、その画像から1つのサムネイル画像を生成したいとします。 サイズを小さくするため、読み込み速度が向上します。 私のリスティングページには多くの画像が含まれています。ファイルをc#.netでアップロードした後の圧縮/サムネイル画像

画像を圧縮したり、サムネイル画像を取得するにはどうすればいいですか?

+0

のためにそれを使用することができます。http://のstackoverflowを。 com/questions/487032/image-thumbnails-asp-net/487042#487042 –

答えて

1

あなたはこのような何か行うことができます。

public static Bitmap CreateThumbnail(string filename, int width, int height) 
{ 

    Bitmap bmpOut = null; 
    try 
    { 
     Bitmap loBMP = new Bitmap(filename); 
     ImageFormat loFormat = loBMP.RawFormat; 

     decimal lnRatio; 
     int lnNewWidth = 0; 
     int lnNewHeight = 0; 

     //*** If the image is smaller than a thumbnail just return it 
     if (loBMP.Width < width && loBMP.Height < height) 
      return loBMP; 

     if (loBMP.Width > loBMP.Height) 
     { 
      lnRatio = (decimal)width/loBMP.Width; 
      lnNewWidth = width; 
      decimal lnTemp = loBMP.Height * lnRatio; 
      lnNewHeight = (int)lnTemp; 
     } 

     else 
     { 
      lnRatio = (decimal)height/loBMP.Height; 
      lnNewHeight = height; 
      decimal lnTemp = loBMP.Width * lnRatio; 
      lnNewWidth = (int)lnTemp; 

     } 

     bmpOut = new Bitmap(lnNewWidth, lnNewHeight); 
     Graphics g = Graphics.FromImage(bmpOut); 
     g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; 
     g.FillRectangle(Brushes.White, 0, 0, lnNewWidth, lnNewHeight); 
     g.DrawImage(loBMP, 0, 0, lnNewWidth, lnNewHeight); 

     loBMP.Dispose(); 
    } 
    catch 
    { 
     return null; 
    } 
    return bmpOut; 
} 

が唯一のプロトタイプですが、あなたはあなたがこの回答を見ていたいかもしれませんあなたのプロジェクト

+0

良い情報ですが、この行の後にさらに情報が必要な場合if(loBMP.Width> loBMP.Height) – Sri

関連する問題