我正在关注jcrop rails教程,但我遇到了麻烦。它归结为回形针是从原始文件生成缩略图的事实,但我需要它从另一种风格生成。原始文件在产品镜头和文档边缘之间没有任何空格。因此,我不能进一步裁剪。为了解决这个问题,我制作了另一种具有白色像素填充的样式。这就是我想从中生成缩略图。
# croppable is the one with the padding...it's what shows up in the crop view.
# I want :thumb to be generated from THAT style, not :original.
# When generating from :original, the crop offset/size is screwed because the dimensions of :original don't match :cropped
# and I can't crop beyond the pixel dimensions of :original.
has_attached_file :photo, :styles => {
:thumb => { :geometry => "300x300#", :format => :jpg, :processors => [:cropper] },
:general => ["150x375", :jpg],
:show => ["x425", :jpg],
:croppable => ["1200x1200>", :jpg]
},
:url => "/assets/wines/:style/:wine_name",
:path => ":rails_root/public:url",
:default_url => ":wine_default",
:default_path => ":rails_root/public:wine_default",
:default_style => :show,
:convert_options => {
:thumb => '-gravity center -rotate -30',
:croppable => '-gravity center -extent 1200x1200',
:general => '-gravity center -extent 150x375 -quality 95',
:all => '-quality 100 -antialias -flatten -background white -unsharp 0.3x0.3+5+0'
},
:processors => [:thumbnail, :compression]
答案 0 :(得分:3)
我遇到了其他人在网上制作的处理器并将其用于自己。有关高级用法信息,请参阅http://pjkh.com/articles/speeding-up-thumbnail-generation-with-paperclip/的详细信息。
recursive_thumbnail.rb (包含在lib / paperclip_processors中)
module Paperclip
class RecursiveThumbnail < Thumbnail
def initialize file, options = {}, attachment = nil
super Paperclip.io_adapters.for(attachment.styles[options[:thumbnail] || :original]), options, attachment
end
end
end
并为您的模型:
:styles => {
:croppable => ["1200x1200>", :jpg],
:show => ["x425", :jpg],
:general => ["150x375", :jpg],
:thumb => {
:geometry => "150x150^",
:format => :jpg,
:processors => [:recursive_thumbnail] },
:thumbnail => :croppable
}
答案 1 :(得分:0)
也许这会帮助您或像Google这样的其他人带来这个问题。
https://github.com/thoughtbot/paperclip/wiki/Thumbnail-Generation
生成/重新生成缩略图
注意:仅重新生成若干已定义样式中的一种,如中所述 下面的一些示例将导致所有人的路径/网址损坏 其他样式如果你有:hashclip_defaults [:path]和 :paperclip_defaults [:hash_data]中的updated_at(你有 默认)。除非你真的知道自己在做什么,否则不要这样做。
您可以使用Paperclip的rake(重新)生成缩略图 任务。使用上面的示例类:
bundle exec rake paperclip:refresh:thumbnails CLASS=User