O clipe de papel força a imagem original a redimensionar ao criar

Isso permite que você mantenha a imagem original sob uma determinada dimensão no upload, então quando você reprocessar a imagem no futuro, todos os estilos serão baseados no original redimensionado

Neste exemplo, o estilo original é mantido em 640 px de comprimento.

class Document < ActiveRecord::Base
# ommitted lines
has_attached_file
:picture, styles: lambda { |attachment|
g
= attachment.instance.picture_width.blank? && attachment.instance.picture_height.blank? ? {original: "640x640>" } : {}
g
.merge({tiny: '25x25#', thumb: '60x60#', large: '400>'})
}, path: ":rails_root/public/system/:attachment/:id_partition/:style/:filename",
url
: "/system/:attachment/:id_partition/:style/:filename", :processors => [:cropper, :rotator]
end

Você pode usar um método para substituir attachment.instance.picture_width.blank?, para injetar o estilo original via lambda. No meu exemplo, uso uma picture_widthpropriedade.

Se você carregar uma imagem com 2952x2952px, o original será reduzido para 640x640px. Então, se você carregar a imagem via document.picture.url(:original), ela está em 640x640px.