0

我从用户手册下载了一张图片(见附件),需要对其进行转换。当我尝试通过以下代码加载它时,出现异常:“无法加载图像。可用的解码器:\r\n - JPEG : JpegDecoder\r\n - PNG : PngDecoder\r\n - GIF : GifDecoder\r \n - BMP : BmpDecoder\r\n"。是否可以应用自定义解码器,我在哪里可以找到它们?

using (var originalImage = new MemoryStream(...))
using (var image = Image.Load<Rgba32>(originalImage))
{

}
4

1 回答 1

1

可以使用 ImageSharp 对链接的图像进行解码。正如@tocsoft 在评论中所说,您可能忘记重置输入流位置。

这是两张图片。第二个我们使用以下代码加载并垂直翻转:

using (var image = Image.Load(Path.Combine(inPath, "-7bH2hfA.png")))
{
    image.Mutate(x => x.Flip(FlipMode.Vertical));

    image.Save(Path.Combine(outPath, "-7bH2hfA-flipped.png"));
}

您的输入图像:

输入图像

我们翻转的输出图像:

翻转输出图像

编辑

当我最初测试图像时,我使用了 r-click save 这给了我一个有效的 png。从那以后,我使用了从 Dropbox 直接下载,它产生了原始文件。

这不是.png!实际上,它是一个 webp 文件。

原始图像的十六进制转储

于 2019-05-03T15:00:24.033 回答