我试图将图像的红色值增加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