トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

C#/Class/Bitmapクラスをリサイズ

この Wiki の内容を http://cms.shise.net/ に移行中です。
一部の情報は非常に古いもの(12年以上前)ですので、利用する際はご注意ください(Java 1.4 とか .NET 1.0 とか)
お問い合せは wiki@shise.net まで。Gmail に転送されるので、スパムは全部カットされます。


 

Bitmap をリサイズ


正確には、
Bitmap クラスで表される画像を、縦横比を維持したまま任意の矩形内に収まるようにリサイズして返すメソッド。

適当なコードなので、頭悪いかもしれんが。

コード

// 参照設定が無い場合は、そっちも必要。
using System.Drawing;

public static Bitmap ResizeImage(Bitmap image, double dw, double dh)
{
    double hi;
    double imagew = image.Width;
    double imageh = image.Height;

    if ((dh / dw) <= (imageh / imagew))
    {
        hi = dh / imageh;
    }
    else
    {
        hi = dw / imagew;
    }
    int w = (int)(imagew * hi);
    int h = (int)(imageh * hi);

    Bitmap result = new Bitmap(w, h);
    Graphics g = Graphics.FromImage(result);
    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
    g.DrawImage(image, 0, 0, result.Width, result.Height);

    return result;
}