端くれプログラマの備忘録 C#,画像処理 [C#] 画像のガンマを調整する

[C#] 画像のガンマを調整する

ImageAttributesクラスには、ガンマ値を指定して画像を補正する機能がある。

public void SetGamma(float gamma)

gamma パラメーターは通常、1.0 ~ 2.2 の範囲の値です。ただし、状況によっては、0.1 ~ 5.0 の値が有効な場合があります。

ImageAttributes.SetGamma メソッド (Single) (System.Drawing.Imaging)
http://msdn.microsoft.com/ja-jp/library/fd50dwb0(v=vs.110).aspx

サンプルコード

static public Bitmap AdjustGamma(Bitmap image, float gamma)
{
    Bitmap dest = new Bitmap(image.Width, image.Height);
    Graphics g = Graphics.FromImage(dest);

    ImageAttributes ia = new ImageAttributes();
    ia.SetGamma(gamma);

    g.DrawImage(image,
        new Rectangle(0, 0, image.Width, image.Height),
        0, 0, image.Width, image.Height, GraphicsUnit.Pixel, ia);
    g.Dispose();
    return dest;
}

実行例

0011

左からガンマ1.0、1.6、2.2