imagemagick - 使用 rmagick 调整 png 图像的大小而不会降低质量

我需要在 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/

相关文章:

.NET - WinDBG - 字符串的内容

macos - OSX 信号量 : Invalid argument in sem_open

android - 微调器依赖于 android 中的另一个微调器

symfony - 如何覆盖供应商捆绑配置?

git - 如何从 git 存储库中完全删除数据?

css - 宽度为 100% 的额外一个像素

post - 无法打开流 : HTTP request failed! HTTP/1.0 400 错

ruby-on-rails-3 - 在 Rails 模型中一起验证日期和时间字段

asp.net-mvc-3 - 哪个是公开实体或 DTO 以在 mvc3 中查看的最佳实践?

c# - 从任务计划程序运行时,Windows 服务器上的预定 C# 控制台应用程序不显示控制台