【问题标题】:Saving com.itextpdf.text.Image as a image file将 com.itextpdf.text.Image 保存为图像文件
【发布时间】:2014-07-24 17:59:00
【问题描述】:

有没有办法将 com.itextpdf.text.Image 文件保存为文件系统上的 jpg 文件?

Barcode39 code39 = new Barcode39();
code39.setCode(barcode);
code39.setStartStopText(false);
image39 = code39.createImageWithBarcode(cb, null, null);
image39.scaleAbsolute(width, height);
image39.setAbsolutePosition(top, left);
cb.addImage(image39);

我正在创建条形码图像并将其添加到 pdf 中。同时我希望将图像保存在文件系统上。任何帮助表示赞赏。

或,

是否可以从 pdf 中检索条形码(条形码及其下的数字)作为图像文件并使用 itext 将其保存到文件系统?

【问题讨论】:

  • 不。也可以是png。
  • 抱歉,在我发完帖子后,我意识到你需要它是一个 itext 图像文件...抱歉!

标签: java image itext


【解决方案1】:

您可以使用此代码:

BarcodeQRCode qrcode = new BarcodeQRCode("testo testo testo", 1, 1, null);
Image image = qrcode.createAwtImage(Color.BLACK, Color.WHITE);

BufferedImage buffImg = new BufferedImage(image.getWidth(null), image.getWidth(null), BufferedImage.TYPE_4BYTE_ABGR);
buffImg.getGraphics().drawImage(image, 0, 0, null);
buffImg.getGraphics().dispose();

File file = new File("tmp.png");
ImageIO.write(buffImg, "png", file);

希望对你有帮助。

恩里科

【讨论】:

    【解决方案2】:

    只需使用createAwtImage 将 Barcode39 itext 图像转换为 AWT 图像:

    java.awt.Image awtImage = code39.createAwtImage(Color.BLACK, Color.WHITE);
    

    然后将其转换为BufferedImage 并存储:

    BufferedImage bImage= new BufferedImage(awtImage.getWidth(), awtImage.getHeight(), BufferedImage.TYPE_INT_RGB);
    Graphics2D g = bImage.createGraphics();
    g.drawImage(awtImage, 0, 0, null);
    g.dispose();
    
    ImageIO.write(bImage, "jpg", new File("code39.jpg"));
    

    【讨论】:

    • 谢谢你,这有帮助。第一件事,ImageIO.write 需要一个 RenderedImage 对象,所以我需要传递 BufferedImage 对象而不是 awtImage 对象。
    • @sina72 itext7 怎么样?我不能像这样设置图像尺寸并保存为图像文件。你能帮忙吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 2015-09-30
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多