用java打印具有实际大小的图像
嗯,我有一张图片,我想打印在纸上的实际大小和下面的代码实现,但我不知道为什么这个代码缩放图片,但我想图片保持其大小,你能帮我吗 非常感谢用java打印具有实际大小的图像,java,image,printing,Java,Image,Printing,嗯,我有一张图片,我想打印在纸上的实际大小和下面的代码实现,但我不知道为什么这个代码缩放图片,但我想图片保持其大小,你能帮我吗 非常感谢 final Image img = new ImageIcon("C:\\check.jpg").getImage(); PrinterJob printJob = PrinterJob.getPrinterJob(); printJob.setPrintable(new Printable() { public
final Image img = new ImageIcon("C:\\check.jpg").getImage();
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(new Printable()
{
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
if (pageIndex != 0) {
return NO_SUCH_PAGE;
}
graphics.drawImage(img, 0, 0, img.getWidth(null), img.getHeight(null), null);
return PAGE_EXISTS;
}
});
if (printJob.printDialog()) {
try {
printJob.print();
} catch (Exception prt) {
System.err.println(prt.getMessage());
}
}
这可能是因为您的图像没有正确的分辨率。谷歌“每英寸点数”或“图像分辨率”,然后看看javadoc,它的分辨率显然是72 dpi。现在,您应该有足够的信息来正确缩放图像。如何知道“实际大小”是什么?实际大小是拍摄图像时的大小windows在摘要选项卡“宽度和高度”中告诉您,您必须以某种方式获取元数据。当你阅读图像时,它通常不会被保存。图像元数据不是一件容易破解的事情,一旦你拥有了它。你知道我看了所有这些,但它看起来不像是关于java代码的,当我在jpanel中绘制图像时,它的大小与原始图像大小完全相同,但当我在paint函数中实现该代码并在windows中使用XPS打印机打印时,图像变大了,为什么?这是关于xps打印机的吗?@omidaskari因为您的屏幕可能是96dpi,请尝试将其缩放1.3x,看看是否可以修复它。您可能需要一些代码来获取屏幕dpi,因为屏幕可能不同。