我使用BuffereImage类从pdf生成图像。我得到了8位rgba使用下面提到的片段,但我无法将其转换为16 bpc rgba。
int page = 0;
BufferedImage bim = new BufferedImage(100, 100, BufferedImage.TYPE_USHORT_565_RGB);
bim = pdfRenderer.renderImage(page);
String fileName = OUTPUT_DIR + "image-" + page + ".png";
ImageIOUtil.writeImage(bim, fileName, 1);
1条答案
按热度按时间bf1o4zei1#
为每个采样(或通道)创建16位
BufferedImage
并将其存储为png,可以使用以下代码:根据代码,我假设你使用的是pdfbox。如果您使用的是pdfbox,则可以使用
ImageIOUtil.writeImage
而不是ImageIO.write
. 但是你可能想把dpi设置得比1
... ?还要注意的是
image = pdfRenderer.renderImage(page)
在你的代码中将替换图像,所以你不能使用它。尝试使用renderPageToGraphics(int, Graphics2D)
方法: