2

以前发过,但是因为写错了,关了。我正在尝试获取图像中单个像素的颜色。我也在尝试从外部源加载图像 - 在这种情况下,假设我正在尝试从尺寸为 400x400px 的“abcd.jpg”(或 png 在这里并不重要)中获取颜色。我想要获得的颜色是 200x200 的像素。我根据以前的答案尝试的是:

var ipath = @"abcd.jpg";
var color;
using (Image image = Image.Load(ipath))
            {
                color = image<TPixel>[200,200];
            }

但这不起作用,每当我尝试使用 TPixel 或 Rgba32 时,它只会告诉我“变量图像不能与类型参数一起使用”和“找不到类型或命名空间 TPixel”。有人请帮忙,老实说,我不在乎我得到颜色的格式,我只需要以某种方式获取颜色数据。提前致谢。

4

1 回答 1

4

您需要加载具有特定像素类型的图像,而不是使用与像素无关的版本。因此,您需要调用Image.Load<Rgba32>(..)重载(即在这种情况下指定了像素类型的重载Rgba32

var ipath = @"abcd.jpg";
Rgba32 color;
using (var image = Image.Load<Rgba32>(ipath))
{
    color = image[200,200];
}
于 2020-12-14T22:34:03.873 回答