gpt4 book ai didi

image - 使用 iTextSharp 从包含 JPXDecode 过滤器的 PDF 中提取图像时出现 "Parameter is not valid"错误

转载 作者:行者123 更新时间:2023-12-01 22:51:50 24 4
gpt4 key购买 nike

我正在尝试使用以下代码从 PDF 中提取图像。它适用于某些过滤器(例如 DCTDecode ),但不适用于 JPXDEcode 。调用 image.GetDrawingImage() 时会出现“参数无效”错误。

 using System.Drawing.Imaging;
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
...
PdfReader pdf = new PdfReader(currfilename);
PdfReaderContentParser parser = new PdfReaderContentParser(pdf);
ImageRender listener = new ImageRender();
for (int i = 1; i <= pdf.NumberOfPages; i++)
{
try
{
parser.ProcessContent(i, listener);//calls RenderImage() at this point

}
catch (Exception e)
{
Console.WriteLine(e);
}

}


public void RenderImage(ImageRenderInfo renderInfo)
{
PdfImageObject image = renderInfo.GetImage();
PdfName filter = image.Get(PdfName.FILTER) as PdfName;


if (renderInfo.GetRef() != null && image != null)
{
using (System.Drawing.Image dotnetImg = image.GetDrawingImage())//exception occurs at this point
{
if (dotnetImg != null)
{
ImageNames.Add(string.Format("{0}.tiff", renderInfo.GetRef().Number));
using (MemoryStream ms = new MemoryStream())
{
dotnetImg.Save(ms, ImageFormat.Tiff);
Images.Add(ms.ToArray());
}
}
}
}



}

我尝试了这些链接来寻求解决方案

Extract images using iTextSharp

Extract Image from a particular page in PDF

并且能够使用 PdfReader.GetStreamBytesRaw() 函数提取原始图像字节,但在调用 System.Drawing.Image.FromStream(内存流) 时总是出现“参数无效”异常。

我还检查了此链接 "Parameter is not valid" exception from System.Drawing.Image.FromStream() method ,但找不到任何有用的东西。

请帮忙

最佳答案

JPXDecode filter corresponds to JPEG 2000 compression ,.net 框架不支持。 SO 中的另一个问题可能会有所帮助:JPEG 2000 support in C#.NET

关于image - 使用 iTextSharp 从包含 JPXDecode 过滤器的 PDF 中提取图像时出现 "Parameter is not valid"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29965787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com