Java图像缩放

标签 java image itext

我正在使用 iText 将图像输出到 PDF 文件。图像总是比预期的大。根据这本书(iText in Action),这是因为 iText 始终以 72 dpi 的分辨率显示图像,而不管图像的实际 dpi 属性是什么。该书建议使用 image.getDpiX() 找到图像的 dpi,然后使用 image.scalePercent(72/actualDpi * 100) 正确显示图像。到目前为止,我所有图像的 getDpiX() 属性都返回了 0(我已经尝试了 2 个 gif 和 1 个 jpg)。还有另一种方法可以计算出实际的 DPI 以便我的图像正确缩放吗?

com.lowagie.text.Image graphic = com.lowagie.text.Image.getInstance(imgPath);
float actualDpi = graphic.getDpiX();
if (actualDpi > 0)
  //Never gets here
  graphic.scalePercent(72f / actualDpi * 100);

最佳答案

根据 com.lowagie.text.Image JavaDoc,方法 getDpiX 获取 X 方向上的每英寸点数。如果不可用,则返回零。

当 getDpiX 方法返回零时,您将不得不假设一个值。 100 dpi 是一个很好的假设。

if (actualDpi <= 0) actualDpi = 100f;
graphic.scalePercent(72f / actualDpi * 100f);

关于Java图像缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2905323/

相关文章:

Java 接口(interface) - 普通接口(interface)中的常量和静态类

java - 如何用数据库实现一个完美的队列

javascript - 如何通过 JS 从 VAR 获取和替换 IMG 属性

java - iText 中的 setMargins 方法是否有效?

c# - iTextSharp 文本字段将字体设置为粗体

java - 通过servlet获取sql中的上一条记录

java - 关闭应用程序后,在计时器(在 runOnUiThread 中)中显示对话框导致应用程序崩溃。

Javascript 像素操作 : These aren't my colors

java - 使用 Java 的图像分类算法

java - 将 PDF 与 iText 2.1.7 合并会导致它们缩小