使用CarrierWave复制和处理图像

时间:2017-09-26 10:19:33

标签: ruby-on-rails ruby carrierwave

目前,我们已将CarrierWave图像调整为模型中的3种尺寸。

Model.rb

...
mount_uploader :image Uploader
...

Uploader.rb

...
version :small 
...
version :medium
...
version :large
...

我们想在模型中添加一个字段。 processed_image与图像(3种尺寸)相同,并在其中添加模糊滤镜。

Model.rb

...
mount_uploader :image Uploader
mount_uploader :processed_image ProcessedUploader
...

ProcessedUploader.rb

...
version :small 
    ## add blur processed
...
version :medium
    ## add blur processed
...
version :large
    ## add blur processed
...

如何从原始:图像复制到:processed_image并在上传图像后进行处理?

1 个答案:

答案 0 :(得分:0)

您可以通过两种方式执行此操作:

  1. 使用另一个字段processed_image; 在你的模型中写下这个:

    before_create:copy_image

    def copy_image

    self.processed_image = self.image.file
    

  2. 使用单场图像; 只需使用不同的版本,如small_blurred,medium_blurred,large_blurred等,并对这些版本进行处理模糊效果。