我正在使用phantomjs生成jpg图像。我想要600x400px尺寸和144 dpi / ppi的图像。
但我只能生成72dpi的图像。所以,我试图在72 dpi中生成尺寸为1200x800px的图像,然后将其调整为600x400px。 所以我的想法是,
1200x800 px has dpi 72
所以,
600x400px will have dpi 72*2 = 144 (because 1200/2=600px , 800/2=400px )
我正在使用java。但每当我调整图像大小时,质量就会降低。
我试过的方法:
我试图操纵图像的元数据信息,如下面的帖子所述,但它仍然会使图像质量不佳。
我尝试使用以下帖子中给出的AffineTransform,仍对结果不满意:
我使用了错误的方法吗?如果是,那么请提出一些备选方案。 如果方法是正确的,请指导我如何正确实施?
更新
我不想减少号码。像素。我想保持不。像素相同但在增加dpi的同时减小图像的高度/宽度。 例如,在具有72 dpi的1200x800px的图像中,我将其降低到600x400像素,同时将dpi增加到144。 因此,如果您看到像素数相同且图像具有更高的dpi值。
最后使用itext渲染器解决了它。请参阅以下帖子 使用itext缩放大图像以提高分辨率。
答案 0 :(得分:1)
我用Itext解决了它。
File file = new File("demo.png");
Image img = Image.getInstance(file.getName());
img.scaleAbsolute(width, height); //where width,height is the reduced width,height; in my case 600,400.
通过图片类阅读并使用 scaleAbsolute ()。 有关详细信息,请阅读此帖: Image Quality using Itext
PS:这只有在您尝试将图像放入pdf时才有用。 如果有人知道如何将img转换为png文件,请发表评论。