2017-08-02 63 views
0

我有一個上傳器,Avatar,我想允許用戶通過自定義座標來裁剪他們的圖像。我使用了Jcrop,Carrierwave和Cloudinary的組合,修改後的Railscast 182插曲。使用Carrierwave,Cloudinary,Jcrop - 不使用自定義作物座標重新創建版本

提交時,將存儲座標,但Carrierwave似乎沒有用新座標重新創建版本。有任何想法嗎?

我上傳

include Cloudinary::CarrierWave 
    version :large do 
    process :eager => true 
    process :progressive => 'steep' 
    cloudinary_transformation :secure => "true" 
    end 

    version :thumbnail do 
    process :custom_crop 
    end 

    def extension_whitelist 
    %w(jpg jpeg gif png) 
    end 

    def custom_crop 
    return :x => model.crop_x, :y => model.crop_y, :width => model.crop_w, :height => model.crop_h, :crop => :crop 
    end 

我的模型

class Profile < ActiveRecord::Base 
    mount_uploader :avatar, AvatarUploader 

    attr_accessor :crop_x, :crop_y, :crop_w, :crop_h 
    after_update :crop_avatar 

裁剪頁面

<h1>Crop Avatar</h1> 


<%= image_tag @profile.avatar.url(:large), id: "cropbox" %> 

<h4>Preview</h4> 
<div style="width:100px; height:100px; overflow:hidden"> 
    <%= image_tag @profile.avatar.url(:large), :id => "preview" %> 
</div> 

<%= form_for ([:admin, @profile]) do |f| %> 
    <% %w[x y w h].each do |attribute| %> 
    <%= f.text_field "crop_#{attribute}" %> 
    <% end %> 
    <div class="actions"> 
    <%= f.submit "Crop" %> 
    </div> 
<% end %> 

回答

0

你有沒有試過以下?:

version :thumbnail do 
    cloudinary_transformation :x => model.crop_x, :y => model.crop_y, :width => model.crop_w, :height => model.crop_h, :crop => :crop 
end