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

标签 c# python rgba

我目前正在将一些 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/

相关文章:

javascript - 如何使用 javascript 将谷歌地图 div 转换为图像

c# - 为什么 CUDA 内核中的 z 总是零

CSS RGBA 灰度图像到彩色图像的颜色代码

Swift - UIColor.black 在从 UIColor 转换为字符串时使应用程序崩溃

c# - 如何使用 lucene.Net 进行正则表达式搜索

c# - 当 SQL Azure 中不存在数据库时,是否需要先迁移 EF 代码?

python - 在python-opencv中打印读取图像的像素值时出现错误,TypeError: 'NoneType'对象没有属性 '__getitem__'

python - 不均匀(曲线)网格的 Matplotlib 流图

python - Python 上的 REST GET 请求发送命名参数

php - 具有多个变量的 Mod_rewrite