Pregunta

Me gustaría alterar el procesamiento de imágenes en miniatura en un clip por tener ImageMagick aplica una sombra a todas las miniaturas. Lo que estoy atascado en el comando es ImageMagick real que se retiraría este pequeño milagro fuera. Todo lo que he intentado devuelve una gota de sombra incorrectamente escalados sin la imagen original.

def transformation_command
  scale, crop = @current_geometry.transformation_to(@target_geometry, crop?)
  trans = ""
  trans << " -resize \"#{scale}\""
  trans << " -crop \"#{crop}\" +repage" if crop
  # Apply Drop Shadow
  trans << " #{convert_options}" if convert_options? 
  trans
end

Una He intentado ...

def transformation_command
  scale, crop = @current_geometry.transformation_to(@target_geometry, crop?)
  trans = ""
  trans << " -resize \"#{scale}\""
  trans << " -crop \"#{crop}\" +repage" if crop
  trans << " \( +clone -background black -shadow 60x5+10+10 \) +swap -background none -layers merge +repage"
  trans << " #{convert_options}" if convert_options? 
  trans
end

Estoy completamente nuevo para ImageMagick, cualquier ayuda sería muy apreciada.

¿Fue útil?

Solución

Después de un poco de ensayo y error y enterrar la cabeza en la documentación, que finalmente lo descubrió.

has_attached_file :image, 
  :styles => { :thumb => ["100x100#", :png] }, 
  :convert_options => { :thumb => '\( +clone -background black -shadow 70x4+0+0 \) +swap -background none -layers merge +repage' }
  1. Asegúrate de que tienes la última versión de ImageMagick instalado.
  2. [ "100x100 #", png]. Serán convertir la imagen a PNG por lo que la sombra es transparente
  3. En Opciones de convertir,: el pulgar sólo se aplicará la conversión al: Estilo general, utilice:. Todo para aplicar la conversión a todos sus estilos
  4. Tweak "70x4 + 0 + 0" para conseguir la sombra que desee.

Otros consejos

Me resulta mucho más fácil usar la interfaz RMagick en lugar de enviar las opciones de línea de comandos para Imagemagick sí mismo.

Si utiliza RMagick puede utilizar el método de la sombra.

img = Image.read('slide.png').first
shadow = img.shadow(0, 0, 0.0, '20%')

y luego compuesta la imagen sobre la sombra.

escribí un artículo sobre el uso RMagick: http://schf.uc.org/articles/2006/10/18/render-greatlooking-collages-with-ruby-and-rmagick

Trate de leer por encima de lo que podría darle una mejor comprensión.

También escribí un lib abstracción para RMagick que intenta hacer que sea aún más fácil de usar. Lo he llamado RubyShop porque trató de imitar la composición a base de capas de Photoshop .. (me gusta el nombre y probablemente cambiarlo si alguna vez resucitar el proyecto)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top