C#で画像処理のプログラムを作成しています。
画像の輝度をボタンを押すことで暗くしていくプログラムです。
BitmapImage型のOriginalImage.Valueに変更を加えて、それを表示します。
下記まで作成したのですが、変更後、その情報をOriginalImage.Valueに格納する方法が分かりません。
また、このやり方で、輝度が変更されているのでしょうか?
分かる方、いらっしゃいましたら回答お願い致します。
BitmapImage bitmapimage = new BitmapImage();
FormatConvertedBitmap bitmap = new FormatConvertedBitmap(OriginalImage.Value, PixelFormats.Pbgra32, null, 0);
int width = bitmap.PixelWidth;
int height = bitmap.PixelHeight;
byte[] originalPixels = new byte[width * height * 4];
int stride = (width * bitmap.Format.BitsPerPixel + 7) / 8;
bitmap.CopyPixels(originalPixels, stride, 0);
for (int x = 0; x < originalPixels.Length; x += 4)
{
originalPixels[x] = (byte)(originalPixels[x] - 0.5);
originalPixels[x + 1] = (byte)(originalPixels[x + 1] - 0.5);
originalPixels[x + 2] = (byte)(originalPixels[x + 2] - 0.5);
originalPixels[x + 3] = (byte)255;
}
// bitmapimage = (BitmapImage)BitmapSource.Create(width, height, 96, 96, PixelFormats.Pbgra32, null, originalPixels, stride); // エラーが出るため
OriginalImage.Value = bitmapimage;
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/19 02:47