应用作物方法后,如何在载体波上生成两个版本的图像?Rails 5应用程序



我有一个avatar_uploader.rb,它使用carrierwave创建上传的阿凡达(Avatar(的多个版本,也有一个裁切方法。

  version :thumb do
    process :crop
    resize_to_fill(100, 100)
  end
  version :miniature do
    resize_to_fill(25, 25)
  end
  version :large do
    resize_to_limit(600, 600)
  end
  def crop
    if model.crop_x.present?
      resize_to_limit(600, 600)
      manipulate! do |img|
        x = model.crop_x.to_i
        y = model.crop_y.to_i
        w = model.crop_w.to_i
        h = model.crop_h.to_i
        img.crop!(x, y, w, h)
      end
    end
  end

问题是在应用作物方法后需要两个版本。我想要一个微型版本,它只是拇指的较小版本,这是原始文件的裁剪版本。

裁剪方法要求用户裁剪图像,并且需要通过视图来调用x,y,w,h属性。因此,只能完成一次。对于用户来说,两个版本两次裁剪图像是没有意义的。

现在,如果我可以定义缩影以在拇指版本上应用resize_to_fill的版本很方便,但是我不知道该语法是什么。

我想写这篇文章: -

  version :miniature do
    thumb.resize_to_fill(25, 25)
  end

但这只是出现错误,并说拇指不确定。

有没有办法实现这一目标?

更新: -

我认为我没有清楚地解释这个问题。

微型版本被重新生成,但问题是裁剪不会改变原始文件。它只是创建拇指版本。当应用微型版本时,它将小型制作原始文件,而不是拇指版本。我想要与拇指版本相同的作物,但在微型尺寸中。因此,理想情况下,我想在拇指版本上应用微型版本。我不知道该如何实现这一目标。希望现在更清楚。

您需要在裁剪后的图像上调用recreate_versions!。因此您可以做:

model.image.recreate_versions!(:miniature)

更新:

您似乎在:thumb上有农作物,但是对于您想要的东西,我建议定制原始作物,然后重新创建版本。瑞安·贝茨(Ryan Bates(的这款铁路广播很好地解释了。

希望这会有所帮助!

最新更新