PNG 文件的自定义解码器

Custom decoders for PNG files

我从用户手册(参见 attachment)下载了一张图片,需要对其进行转换。当我尝试通过以下代码加载它时,出现异常:"Image cannot be loaded. Available decoders:\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))
{

}

可以使用 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 保存,这给了我一个有效的 png。从那以后,我使用了从 Dropbox 直接下载的方式来生成原始文件。

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