3
RGBA值的C#转换目前,我正在把一些Python代码到C#,和我遇到的RGBA C#库Python来不工作
# Original Python Code:
d = math.sqrt((x - size/2.0)**2 + (y - size/2.0)**2)
rgbVal = int(200*d/md + 50)
rgba = (0,0,0, 255 - rgbVal)
img.putpixel((x,y), rgba)
// My C# Code
double d = Math.Sqrt(Math.Pow((x - DotSize/2.0), 2) + Math.Pow((y - DotSize/2.0), 2));
int rgbVal = (int) (200 * d/md + 50);
Color color = Color.FromArgb(255 - rgbVal, 0, 0, 0); // ** ERROR **
img.SetPixel(x,y, color);
在代码d的两个实例是一个问题等于106,md等于53.然而,得到的rgbVal值是450. 这显然意味着255-450是-195,由于每个单独值必须介于0和255之间,所以会引发错误。 任何人都有任何想法如何解决这个问题。请注意,在运行python和C#版本时,数据是相同的。
但问题是,Python代码的第一次迭代的最后一行(BOT的代码集是在一个循环中)。将img.SetPixel(0,0,(0,0,0, - 195)),这将与C#相同。但我不明白为什么python不抱怨和C#是? – clangers
我想我可能已经解决了我自己的问题。我将这些值转换为32位颜色值,而不是传入各个值。 – clangers