【发布时间】: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;
}
有没有人有关于这个话题的知识分享?
【问题讨论】: