我编写了一个程序,生成一个 BufferedImage 以显示在屏幕上,然后打印。图像的一部分包括 1 像素宽的网格线。即,一行为1个像素,行与行之间大约有10个像素。由于屏幕分辨率的原因,图像显示得比这大得多,每行有几个像素。我想将其绘制得更小,但是当我缩放图像(通过使用 Image.getScaledInstance 或 Graphics2D.scale)时,我会丢失大量细节。
我也想打印图像,并且正在处理同样的问题。在这种情况下,我使用以下代码来设置分辨率:
HashPrintRequestAttributeSet set = new HashPrintRequestAttributeSet();
PrinterResolution pr = new PrinterResolution(250, 250, ResolutionSyntax.DPI);
set.add(pr);
job.print(set);
它可以使图像变小而不丢失细节。但问题是图像在同一边界处被切断,就好像我没有设置分辨率一样。我也很困惑,因为我期望更大的 DPI 来制作更小的图像,但它却以相反的方式工作。
我在 Windows 7 上使用 java 1.6 和 eclipse。
关于图像在页面边界被剪切的问题,您是否检查过图形的剪切区域?我的意思是尝试:
System.out.println(graphics.getClipBounds());
并确保其设置正确。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)