rails图像使用carrierwave和minimagick调整大小

时间:2016-03-15 14:41:53

标签: ruby-on-rails imagemagick carrierwave minimagick

我有一个rails应用程序,配置文件图像上传了carrierwave并使用minimagick处理。

这就是我过去所拥有的:

version :base_thumb do
  process :resize_to_fit => [85, 85]
end

我刚刚意识到一些个人资料图片被扭曲了。照片中人们的头部垂直伸展。我想这是因为我只使用了resize_to_fit方法。

我想出了以下内容,但它不起作用。使用此代码,我得到undefined method "process"错误。我还必须添加一个新版本(use_thumb)。

version :base_thumb do
  process :resizing => [85, 85]
end

version :user_thumb do
  process :resizing => [40, 40]
end

def resizing(h, w)
  manipulate! do |img|
    if img.width > img.height
      process :resize_to_fill => [h, w]
    else
      process :resize_to_fit => [h, w]
    end
  end
end

我的问题如下:

  • 是否因为我只使用resize_to_fit方法?
  • 而导致此问题
  • 如果是这样,我如何才能使resizing方法有效?

更新:

我的目标是显示没有失真/空白的个人资料图像。我所有图像的高/宽比为1:1。如果sby上传了比例为2:1或1:2的比例,我仍然希望将其显示为1:1而不会出现失真和空白。

我不确定使用resize_to_fitresize_to_fillresize_to_limit版本是否足够,或者我必须使用裁剪等操作图像。

正如我在大多数rails应用程序中看到的那样,人们只是使用resize_to_fitresize_to_fill并且没有任何比例问题,不知何故他们的图像总能很好地显示。

1 个答案:

答案 0 :(得分:1)

如果您尝试获得相同比例的图片以调整其大小而不扭曲它,那么您应该阅读this

如果您只想尝试使用相同裁剪的图片中间部分,则应阅读this

希望有所帮助