【问题标题】:C# - Convert JBIG1 images to other image formatsC# - 将 JBIG1 图像转换为其他图像格式
【发布时间】:2020-10-17 01:52:11
【问题描述】:

我需要将 JBIG1 图像转换为另一种图像格式,例如 JPEG 或 PNG,但我似乎找不到与此相关的任何内容。

这个 JBIG1 图像是用 Base64 编码的。

我已尝试在 .NET 中使用 System.Drawing 来完成此操作,但在使用 JBIG1 字节数组数据调用 Image.FromStream() 时会引发“System.ArgumentException:参数无效”异常。

见下面的代码:

byte[] binData = ConvertFromBase64StringToArray("BASE64 ENCODED JBIG1 IMAGE GOES HERE");
Image img = binData.ConvertToImage();
img.Save("C:/Images/converted-from-jbig.jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);

使用的功能:

public static byte[] ConvertFromBase64StringToArray(string base64String)
{
    byte[] data = Convert.FromBase64String(base64String);
    using (var stream = new MemoryStream(data, 0, data.Length))
    {
        data = stream.ToArray();
    }
    return data;
}

public static Image ConvertToImage(this byte[] byteArrayIn)
{
    var ms = new MemoryStream(byteArrayIn);
    Image returnImage = Image.FromStream(ms); //exception thrown in this line 
    return returnImage;
}

有没有人有关于这个话题的知识分享?

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    您可能需要第三方库来处理 JBig 文件。看起来https://github.com/dlemstra/Magick.NET 对此有支持。

    【讨论】:

    • 我已经安装了 Image Magick 包,但是在尝试读取 .jbg 图像时出现以下异常: ImageMagick.MagickMissingDelegateErrorException: 'no decode delegate for this image format `JBG' @ error/构成.c/ReadImage/562。我在imagemagick.org/script/formats.php 上读到 JBIG 需要 jbigkit-1.6.tar.gz C 库,但我不知道如何将它与 .NET 链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 2020-02-29
    • 2023-03-05
    相关资源
    最近更新 更多