1

ImageMagick 和 RMagick 都有“密度”的设置/属性,这就是他们所说的分辨率。我可以传递一个 200 的值,当图像写入文件或 to_blob 时,它应该将分辨率设置为 200x200。

在 Rails 控制台中,我可以加载图像,然后设置密度,如果我检查它,它会告诉我密度(最初是 300x300)现在是 200x200,但是当我将其写入文件时,分辨率是 300x300。

我成功改变分辨率的唯一方法是创建一个相同宽度和高度的新图像,然后覆盖原始图像。然而,无论我使用什么设置,这都会扭曲输出(我尝试将原件设置为完全不透明,将“新”设置为完全透明,甚至使用 CopyCompositeOperation,它应该完全替换“新”图像)。

我试过这样设置密度:

image.density = "200"

像这样

image.write("test.jpg") {self.density="200"}

两者兼而有之。

没有任何效果...有什么想法吗?

要清楚...我不想调整图像大小,我想更改打印分辨率。我希望尺寸保持不变(即宽度/高度不应改变)。

4

1 回答 1

1

这是 AWS 在其存储库中的 ImageMagick 版本的问题。删除该版本并从源代码安装使密度设置起作用。此外,如果您希望将分辨率更改反映在 Windows 应用程序中,则需要从图像中去除“8bim”配置文件:

image.profile!("8bim",nil)
于 2013-09-13T16:17:38.630 回答