Carrierwave 作物特定版本
我正在研究使用 Carrierwave 和 Jcrop 裁剪图像的能力。它是 Railscasts 第 182 集和第 253 集的组合。我已经进行了裁剪,但它裁剪了原始内容。是否有强制 manupulate!
使用不同的版本?
def crop_image(x,y,w,h)
manipulate! do |img|
img.crop(x.to_i, y.to_i, w.to_i, h.to_i)
end
end
或者有没有办法从模型调用中设置版本?
attr_accessor :crop_x, :crop_y, :crop_w, :crop_h
attr_accessible :description, :image, :crop_x, :crop_y, :crop_w, :crop_h
after_update :reprocess_image, :if => :cropping?
def cropping?
!crop_x.blank? && !crop_y.blank? && !crop_w.blank? && !crop_h.blank?
end
def reprocess_image
image.crop_image(crop_x, crop_y, crop_w, crop_h)
end
I am working on the ability to crop images using carrierwave and Jcrop. Its a combination of Railscasts episode 182 and 253. I have cropping working but it crops the original. Is there anyway to force manupulate!
to use a different version?
def crop_image(x,y,w,h)
manipulate! do |img|
img.crop(x.to_i, y.to_i, w.to_i, h.to_i)
end
end
or is there a way to set the version from the model call?
attr_accessor :crop_x, :crop_y, :crop_w, :crop_h
attr_accessible :description, :image, :crop_x, :crop_y, :crop_w, :crop_h
after_update :reprocess_image, :if => :cropping?
def cropping?
!crop_x.blank? && !crop_y.blank? && !crop_w.blank? && !crop_h.blank?
end
def reprocess_image
image.crop_image(crop_x, crop_y, crop_w, crop_h)
end
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 Railscast 中,Ryan 的解决方案是通过查找大版本与原始版本之间的比率来转换坐标以与原始图像配合使用。通过遵循相同的逻辑,我能够让它与 Carrierwave 和 jCrop 一起使用。有趣的是 Carrierwave 不存储图像的尺寸。我能够从这篇文章中破解一些内容: http://code.dblock.org/ShowPost.aspx?Id =194。
这是我的解决方案。
user.rb
account_controller.rb
profile_uploader.rbcrop.html.erb
style.css
In the railscast, Ryan's solution was to convert the coords to work with the original image by finding the ratio between the large version and the original version. I was able to get it to work with Carrierwave and jCrop by following the same logic. Interesting enough Carrierwave does not store the dimensions of the images. I was able to hack together something from this post: http://code.dblock.org/ShowPost.aspx?Id=194.
Here is my solution.
user.rb
account_controller.rb
profile_uploader.rb
crop.html.erb
style.css
如果我正确理解问题,更简单的方法是将 trueSize 选项发送到 Jcrop。
If I correctly understand the problem more simple way is to send trueSize option to the Jcrop.
Ryan 刚刚更新了 Railscasts #182,它现在使用 CarrierWave
http://railscasts.com/episodes/ 182-裁剪图像-修订
Ryan just updated railscasts #182, it uses CarrierWave now
http://railscasts.com/episodes/182-cropping-images-revised