我試圖將圖像的紅色值增加50%。這裏是我的代碼:」不能隱式地將類型'double'轉換爲'byte'「
public static Bitmap IncreaseRedFiftyPercent(Bitmap b)
{
Bitmap temp = (Bitmap) b;
Bitmap bmap = (Bitmap)temp.Clone();
Color c;
for (int i = 0; i < bmap.Width; i++)
{
for (int j = 0; j < bmap.Height; j++)
{
c = bmap.GetPixel(i, j);
byte increase = c.R + c.R * 0.5; //This line gives error
bmap.SetPixel(i, j, Color.FromArgb(increase, c.G, c.B));
}
}
b = (Bitmap)bmap.Clone();
return b;
}
這裏是我做的:我讀了圖像的所有像素,並且由百分之五十增加紅色值,並保持藍色和綠色是相同的。但線
byte increase = c.R + c.R * 0.5; //This line gives error
給我一個錯誤說
Cannot implicitly convert type 'double' to 'byte'. An explicit conversion exists (are you missing
a cast?)
,我不能double轉換成字節?這看起來很明智,我在做什麼,這裏有什麼問題?
感謝
只有一行甚至很重要 - 最後一行。 '字節b = somedouble;'無效。你必須明確地將* double *轉換回* byte *(例如'(byte)somedouble')。該錯誤消息表示沒有隱式轉換(如從字節 - > double)。 – user2246674
只是使用'字節增加=(字節)(c.R + c.R * 0.5);' –
感謝您的答案,我這樣做,但它似乎不像紅色增加。我如何檢查我的代碼是否正在做我真正想要的?我試圖使用一些圖像查看器來增加紅色並比較圖片,但我無法做到。任何訴訟l,請檢查一些程序嗎? – yrazlik