先建立Picturebox1和Picturebox2和滑桿物件Trackbox1
為了不破壞原圖達成順利調整透明度,才建立第2個(不顯示),方便作業
透明度為-255 ~ +255
Bitmap BMP = new Bitmap(pictureBox2.Image);
int brightness = trackBar1.Value; //抓滑桿的值
for(int y = 0; y < BMP.Height; y++)
{
for(int x = 0; x < BMP.Width; x++)
{
var pixel = BMP.GetPixel(x, y); //取得圖片的pixel資訊
var pixelR = ((pixel.R + brightness > 255) ? 255 : (pixel.R + brightness)) < 0 ? 0 : ((pixel.R + brightness > 255) ? 255 : (pixel.R + brightness));
var pixelG = ((pixel.G + brightness > 255) ? 255 : (pixel.G + brightness)) < 0 ? 0 : ((pixel.G + brightness > 255) ? 255 : (pixel.G + brightness));
var pixelB = ((pixel.B + brightness > 255) ? 255 : (pixel.B + brightness)) < 0 ? 0 : ((pixel.B + brightness > 255) ? 255 : (pixel.B + brightness));
Color newColor = Color.FromArgb(pixel.A, pixelR, pixelG, pixelB); //把這個pixel的修改後資訊寫回
BMP.SetPixel(x, y, newColor);
}
}
pictureBox1.Image = BMP;
先建立個bitmap物件處理,抓取pixel資訊將RGB資訊計算出來
若超過255則設為255,若低於0則設為0
再把計算結果放到picturebox1
設定一個先存入原圖避免每次picturebox1的圖每次更動每次都被破壞數值,暫存使用
沒有留言:
張貼留言