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 文件。
我从用户手册(参见 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 文件。