【发布时间】:2012-03-08 02:27:20
【问题描述】:
我需要在 rmagick 中将 200*200 的图像大小调整为 60*60,而不会损失图像质量。目前我正在关注一个 png 图像
img = Magick::Image.from_blob(params[:file].read)[0]
img.write(RootPath + params[:dir_str] + "/#{filename}") do
self.quality=100;
# self.compression = Magick::ZipCompression
end
我在生成的图像中失去了清晰度。我希望能够通过损失最少的图像质量来调整大小。 我试图设置它的质量和不同的压缩,但它们似乎都不能正常工作。 所有生成的图像看起来仍然被去除了一层颜色,并且单词字符正在失去清晰度
谁能给我一些调整png图像大小的说明?
【问题讨论】:
-
PNG 是一种无损格式,因此任何质量损失要么是 imagemagik 算法的结果,要么只是因为您将分辨率降低到三分之一,这会改变事情。
-
真的吗?您正在将图片的大小从 200x200 = 40,000 调整为 60x60 = 3,600 - 即不到分辨率的十分之一 - 您对失去图像质量感到惊讶?
-
@ChrisLatta 你是对的;我在分辨率数学上失败了,并划分了尺寸而不是像素数。十分之一远远超过三分之一。
-
好吧,美术设计告诉我结果图像质量下降。他给了我一张预期的 60*60 图像,使用 PS 调整大小。我检查了图像并与生成的图像进行比较,它看起来确实有很大不同。所以我尝试了 rmagick 提供的所有压缩类型,但所有结果图像都失去了清晰度
-
如果是imagemagik的算法造成的,有没有gem工具可以提供更好的图片缩放解决方案?
标签: imagemagick image-resizing rmagick