【发布时间】:2019-03-08 16:32:56
【问题描述】:
我正在开发一个创建 PDF 文件的应用程序,我需要在其上绘制一些小图像。
问题在于 PDF 上绘制的图像模糊且质量非常低。 我也尝试在不缩放的情况下绘制图像,但同样的情况是,它们很模糊。
这是我绘制一张图像的 sn-p(我没有使用 iText)
Bitmap calendarBitmap = BitmapFactory.decodeResource(getApplicationContext().getResources(), R.drawable.icon_200ppp_calendar);
pdfCanvas.drawBitmap(scaleToFitHeight(calendarBitmap, 16), xCoord, yCoord, null);
public Bitmap scaleToFitHeight(Bitmap b, int height) {
float factor = height / (float) b.getHeight();
return Bitmap.createScaledBitmap(b, (int) (b.getWidth() * factor), height, true);
}
我有 PNG 和 SVG 格式的图像(转换为 VectorDrawable),结果是一样的。
这是通过 Android Studio 从 SVG 文件生成的 XML:SVG converted to VectorDrawable
这些是结果:
【问题讨论】:
-
对模糊图像使用专业级 PDF 检查器。分辨率和原版一样吗?相同的大小,以像素为单位?如果不是,则必须进行一些重新采样。 PDF 能够包含清晰的位图。 (我认为这不是您的观众!为了保持一致性,请尝试另一个。)
-
原始 PNG 图像为 48x48px,我使用我发布的方法调整大小以将其缩小为 16x16。 PDF 检查器显示它的大小和位分辨率相同。
-
等等——你自己把它缩小到原来的1/3?那你为什么会惊讶缩小后的图像不如原始图像清晰?它与 PDF 无关,是缩小尺寸使您的图像模糊。 (解决方案:不要。)
-
是的,我正在缩小它,因为图像的尺寸太大。我会问设计师一张精确尺寸的图片:)谢谢!我仍然有一个疑问:你知道缩小一个 72dpi 的图像和另一个 300dpi 的图像是否相同?
标签: android svg bitmap pdf-generation png