Fir*_*lem 7 ruby file-upload ruby-on-rails carrierwave
我想要做的是上传图像,然后将用户带到一个新页面,我将使用Jcrop让用户选择他们想要裁剪的图像部分,然后存储该图像.基本上,我想让它成为一个两阶段的过程.
我知道如何做javascript部分,我理解如何创建这个功能的基本流程.但是,我不知道有关如何实现此目的的载波具体细节.
我能找到的最接近的是:
image.recreate_versions!
Run Code Online (Sandbox Code Playgroud)
但我仍然无法传递高度/宽度并开始x,y来裁剪它.
例如,我如何告诉carrierwave"事后"进行裁剪 - 即不是第一次上传图像时?我看到了"处理"图像的方法,但它们会自动以固定的高度和宽度发生.我怎么能推迟这个?
基本上,我想要做的是动态定义一个版本,我可以在其中指定高度和宽度以及x,y
谢谢
这是我能做的最好的事情.可能有一种更简单的方法,但这是我的黑客:
这是传递裁剪信息时的'POST'控制器操作:
def update_crop
@user = User.find(current_user.id)
@user.crop(params[:x].to_i, params[:y].to_i, params[:h].to_i, params[:w].to_i)
redirect_to(profile_path, :notice => 'Your profile and avatar was successfully updated.')
end
Run Code Online (Sandbox Code Playgroud)
以下是添加到包含"头像"图像上传器的用户模型的方法:
def crop(x, y, h, w)
image = Magick::ImageList.new(avatar.current_path)
cropped_image = image.crop(x, y, h, w)
cropped_image.write(avatar.current_path)
avatar.recreate_versions!
end
Run Code Online (Sandbox Code Playgroud)
基本上这只是当前的一个,填写它,然后告诉Carrierwave创建
| 归档时间: |
|
| 查看次数: |
2448 次 |
| 最近记录: |