我一直在寻找一些来自互联网的解决方案,但我仍然没有找到我的问题的答案。ImageIO保存回原来的尺寸
我一直在工作或做一个程序,将从我的电脑获取图像文件,然后将使用Java Graphics
编辑添加一些文本/对象/等。之后,Java ImageIO
将保存新修改的图像。
到目前为止,我能够很好地做到这一点,但我得到了一个关于图像大小的问题。原始图像和修改后的图像的大小不一样。
原始为2x3
英寸图像,而修改后的图像应该具有2x3英寸,太难以承受8x14
英寸。所以,它比原来的更大了。
什么是解决方案/代码,会给我一个2x3英寸图像的输出,它仍然会有一个“不错的质量”?
UPDATE:
所以,这里是我使用的代码。
public Picture(String filename) {
try {
File file = new File("originalpic.jpg");
image = ImageIO.read(file);
width = image.getWidth();
}
catch (IOException e) {
throw new RuntimeException("Could not open file: " + filename);
}
}
private void write(int id) {
try {
ImageIO.write(image, "jpg", new File("newpic.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}
月2日更新:
我现在知道什么是新形象的问题。当我从Photoshop中检查它时,它具有与原始图像分辨率不同的图像分辨率。原始尺寸为300像素/英寸,而新图像的分辨率为72像素/英寸。
我将如何使用Java更改分辨率?
这个问题有点普遍,但我的猜测是你保存在一个不同的DPI设置格式。发布一些代码,我们可以尝试帮助。 –
请发布您的问题的[SSCCE](http://sscce.org/)。 – mattbdean
奇怪。 Graphics2D上的每个转换都应该通过反转来镜像。 _我不知道,但这似乎是唯一的解释._剪切需要? –