繁体   English   中英

使用Java中的缩放比例改善jpeg图像质量

[英]Improving jpeg image quality using scaling in java

我正在使用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。 但是,每当我调整图像大小时,画质就会变差。

我尝试的方法:

  1. 我试图按照下面的文章中的说明操作图像的元数据信息,但仍然使图像质量较差。

    在Java中提高分辨率并减小图像大小

    将dpi元数据写入Java中的jpeg图像

  2. 我尝试使用以下帖子中给出的AffineTransform,但仍然对结果不满意:

    Java图像缩放可提高质量?

我使用错误的方法吗? 如果是,那么请提出一些替代方案。 如果方法正确,那么请指导我如何正确实施?

UPDATE

我不想减少编号。 像素。 我要保留否。 像素相同,但是在增加dpi的同时减小了图像的高度/宽度。 例如,在具有72 dpi的1200x800px的图像中,我将其减小到600x400 px,同时将dpi增加到144。 因此,如果您看到像素数相同且图像具有更高的dpi值。


最后使用itext渲染器解决了它。 请参阅以下有关使用itext缩放大图像以提高分辨率的文章。


使用Itext的图像质量

我使用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.

通过Image类读取它,并使用scaleAbsolute ()。 有关更多详细信息,请阅读这篇文章: 使用Itext的图像质量

PS:这仅在您尝试将图像放入pdf时才有用。 如果有人知道如何将img转换为png文件,请发表评论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM