Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java打印具有实际大小的图像_Java_Image_Printing - Fatal编程技术网

用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,因为屏幕可能不同。