使用rmagick在轨道上重新调整ruby中的图像,而不会降低质量

时间:2010-09-10 06:40:53

标签: ruby-on-rails resize rmagick

我需要将rmagick中的图像从当前大小调整为固定宽度到宽度300而不会丢失图像质量。目前我正在关注jpg图像

 if previewImage.columns > 300
       previewImage.change_geometry!("300x") { |cols, rows, img|
           img.resize!(cols, rows)
       }
   end

我不确定这是否是最佳方式,因为我在结果图像中失去清晰度。我希望能够通过丢失最少的图像质量来调整大小。

我知道有过滤器和压缩技术: JPG JPEGCompression,LosslessJPEGCompression

但不知道哪个会提供最好的结果,或者我可以将图像转换为png然后调整大小?

1 个答案:

答案 0 :(得分:3)

转换为PNG将是无损的。调整大小总是意味着质量的一些损失(你可以尝试各种图像magick调整大小过滤器,看看哪一个最适合你的图像...真的没有“最好的”,这就是为什么他们让你选择。如果图像你所处理的通常是相同的,你应该能够通过试验选择一个最佳的。从PNG转换回JPG意味着更多的损失,所以如果你去那条路线,我会把图像保留在PNG。