gpt4 book ai didi

c# - Python 到 C# 的 RGBA 值转换不起作用

转载 作者:行者123 更新时间:2023-11-28 19:25:47 25 4
gpt4 key购买 nike

我目前正在将一些 python 代码转换为 C#,但我遇到了 RGBA C# 库的问题

# 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# 版本时数据是相同的。

最佳答案

您可以使用 mod 规范化该值。

// I'm a little confused by your code, so it's this
Color color = Color.FromArgb(255 - ((-190 + 255) % 255), 0, 0, 0);
// or this...
Color color = Color.FromArgb(((-190 + 255) % 255), 0, 0, 0);

关于c# - Python 到 C# 的 RGBA 值转换不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13546389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com