是否可以从jpeg,png或tiff文件中提取图像?不是PDF!假设我有一个包含jpeg格式文本和图像的文件(所以它基本上是一张图片);我希望能够以编程方式提取图像(最好使用Java)。如果有人知道有用的图书馆,请让我知道。我已经尝试过AspriseOCR和tesseract-ocr,他们已经成功地只提取文本(显然)。 谢谢。从图像中提取图像
从图像中提取图像
回答
尝试:
int startProintX = xxx;
int startProintY = xxx;
int endProintX = xxx;
int endProintY = xxx;
BufferedImage image = ImageIO.read(new File("D:/temp/test.jpg"));
BufferedImage out = image.getSubimage(startProintX, startProintY, endProintX, endProintY);
ImageIO.write(out, "jpg", new File("D:/temp/result.jpg"));
这点是要提取图像的区域。从PDF文件
提取图像,我建议改变你的后瓦。您可以使用pdfbox
或iText
api。以下示例从pdf文件中提取所有图像。 可能有一些资源给你。如果pdf中有大量图像,可能会发生java.lang.OutOfMemoryError
。
下载pdfbox.xx.jar
here。从PDF文件
import java.io.File;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.pdfbox.PDFBox;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage;
import org.jdom.Document;
public class ExtractImagesFromPDF {
public static void main(String[] args) throws Exception {
PDDocument document = PDDocument.load(new File("D:/temp/test.pdf"));
List pages = document.getDocumentCatalog().getAllPages();
Iterator iter = pages.iterator();
while(iter.hasNext()) {
PDPage page = (PDPage)iter.next();
PDResources resources = page.getResources();
Map images = resources.getImages();
if(images != null) {
Iterator imageIter = images.keySet().iterator();
while(imageIter.hasNext()) {
String key = (String)imageIter.next();
System.out.println("Key : " + key);
PDXObjectImage image = (PDXObjectImage)images.get(key);
File file = new File("D:/temp/" + key + "." + image.getSuffix());
image.write2file(file);
}
}
}
}
}
提取特定的图像要提取特定的图像,你要知道index of page
和页面index of image
。否则,你不能提取。
以下示例程序提取first image
的first page
。
int targetPage = 0;
PDPage firstPage = (PDPage)document.getDocumentCatalog().getAllPages().get(targetPage);
PDResources resources = firstPage.getResources();
Map images = resources.getImages();
int targetImage = 0;
String imageKey = "Im" + targetImage;
PDXObjectImage image = (PDXObjectImage)images.get(imageKey);
File file = new File("D:/temp/" + imageKey + "." + image.getSuffix());
image.write2file(file);
谢谢,那种帮助。如果图像的坐标未知,我该怎么办? @CycDemo – iAmIronMan
@iAmIronMan :),我不确定,你必须知道'坐标点'区域来提取。如果是这样,请尝试再试一次以达到您的目标。 – CycDemo
@iAmIronMan检查更新文章'从PDF文件中提取图像' – CycDemo
如果你有兴趣出的现成的产品,可以用最少的非编程组态通过暗箱处理做到这一点(因为你尝试过其他产品),然后ABBYY FlexiCapture能做到这一点。它可以配置为在松散定义的区域或页面上的任何位置查找动态大小的图片/对象,并完全控制搜索逻辑。我曾经使用它来提取特定形状和粗细的线条来分隔书籍的各个章节,其中每一行都表示一个新章节,并且可能位于页面上的任何位置。
- 1. 从PDF中提取图像
- 2. 从图像中提取
- 3. 从图像中提取x%
- 4. 从RichTextBox中提取图像
- 5. 从PDF中提取图像
- 6. 从图像中提取图层
- 7. 从图像中提取图案
- 8. 从图像中提取像素,作为新的小图像
- 9. 提取图像
- 10. 从网站提取图像
- 11. 从asp.net提取pdf图像
- 12. 从RTF提取图像
- 13. 从XML提取XML图像
- 14. vb.net Aspose.OCR - 提取从图像
- 15. 提取像素从图像GDI +
- 16. 如何从扫描中提取图像。如何在图像中查找图像?
- 17. 如何从窗体中的图像中提取图像?
- 18. 如何从JAVA中的图像URL中提取图像属性?
- 19. 需要从提交的图像更新图像ID提取?
- 20. 在Android中从html中提取图像
- 21. 使用其背景位置从PNG图像中提取图像
- 22. 使用java从DICOM图像中提取图像和元数据
- 23. 从div中提取图像并添加为背景图像
- 24. 在android中,你将如何从图像按钮提取图像?
- 25. 从图像中提取子图像使用c#
- 26. 从单个图像提取深度图
- 27. 从CGPDFPageRef提取缩略图图像
- 28. 从图像id中获取图像android
- 29. SWT:从图像中获取子图像
- 30. 从URL提取图像后图像视图不更新
你有一些代码吗?或者你在寻找想法? – guisantogui
我使用Xuggler进行图像和视频处理。 – Fabinout
我正在寻找想法。我可以使用的图书馆。谢谢。 – iAmIronMan