■ サンプル
コントローラ
* button x 1 * trackBar x 1 * pictureBox x 1
コード
using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; namespace SampleForm { public partial class Form1 : Form { private Image srcImage; public Form2() { InitializeComponent(); this.srcImage = this.pictureBox1.Image; } private void button1_Click(object sender, EventArgs e) { //明るさを100増やした画像を作成する Image newImg = AdjustBrightness(this.srcImage, this.trackBar1.Value); this.pictureBox1.Image = newImg; } /// <summary> /// 指定した画像を指定した明るさにして新しい画像を作成する /// </summary> /// <param name="img">画像</param> /// <param name="brightness">明るさ(-255~255)</param> /// <returns>明るさが変更された画像</returns> public static Image AdjustBrightness(Image img, int brightness) { //明るさを変更した画像の描画先となるImageオブジェクトを作成 Bitmap newImg = new Bitmap(img.Width, img.Height); //newImgのGraphicsオブジェクトを取得 Graphics graphics = Graphics.FromImage(newImg); //ColorMatrixオブジェクトの作成 //指定された値をRBGの各成分にプラスする float plusVal = (float)brightness / 255f; System.Drawing.Imaging.ColorMatrix cm = new System.Drawing.Imaging.ColorMatrix( new float[][] { new float[] {1, 0, 0, 0, 0}, new float[] {0, 1, 0, 0, 0}, new float[] {0, 0, 1, 0, 0}, new float[] {0, 0, 0, 1, 0}, new float[] {plusVal, plusVal, plusVal, 0, 1} }); //ImageAttributesオブジェクトの作成 System.Drawing.Imaging.ImageAttributes ia = new System.Drawing.Imaging.ImageAttributes(); //ColorMatrixを設定する ia.SetColorMatrix(cm); //ImageAttributesを使用して描画 graphics.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel, ia); //リソースを解放する graphics.Dispose(); return newImg; } } }
参考文献
https://dobon.net/vb/dotnet/graphics/brightness.htmlhttp://csharpimage.blog60.fc2.com/blog-entry-22.html
https://imagingsolution.net/program/csharp/imagedata-class/get_image_value/
https://imagingsolution.net/program/csharp/setgetpixel/
http://www.84kure.com/blog/2014/12/02/c-%E7%94%BB%E5%83%8F%E3%81%AE%E8%BC%9D%E5%BA%A6%E8%AA%BF%E6%95%B4/
関連記事
画像処理
画像処理 ~ コントラスト ~https://blogs.yahoo.co.jp/dk521123/37852480.html
画像処理 ~ シャープネス ~
https://blogs.yahoo.co.jp/dk521123/37837353.html
画像処理 ~ 回転 ~
https://blogs.yahoo.co.jp/dk521123/37853430.html
画像処理 ~ アフィン変換 ~
https://blogs.yahoo.co.jp/dk521123/38061211.html
その他
PictureBox ~画像を表示する~https://blogs.yahoo.co.jp/dk521123/23504075.html
PictureBox [7] ~ 画像をコピーする ~
https://blogs.yahoo.co.jp/dk521123/37857445.html
【C#】Graphics ~ 図形の描画 ~
https://blogs.yahoo.co.jp/dk521123/folder/966427.html