我需要在 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 图像大小的说明?
最佳答案
您正在将一张图片的大小从 200x200 = 40,000 缩小到 60x60 = 3,600 - 即不到分辨率的十分之一 - 并且您对图像质量下降感到惊讶?可以这样想——你能把一张 16x16 的图像调整到 5x5 而不会降低质量吗?这与您在这里尝试做的大致相同。
如果你所说的你想做的事情实际上是可能的,那么每张图片都可以减少到一个像素而不会降低质量。
由于美术设计师的 60x60 图片质量比您的好,这取决于美术设计师所使用的图片的原始大小。例如,如果艺术设计师使用 800x800 的图像并提供了 200x200 的图像,然后在 PS 中将原始的 800x800 图像缩小为 60x60,那么 60x60 的图像将比您拥有的图像质量更好。这是因为您的 60x60 图像经历了两次质量损失:一次变为 200x200,第二次从 200x200 变为 60x60。这必然会比从原始图像调整大小的图像更糟糕。
https://stackoverflow.com/questions/9612118/