Pregunta

Quiero poder validar que la imagen sea exactamente cierta con o con cierta altura, o si es cuadrada.

En el bloque de validación del modelo que has_attachment, cuando intento acceder a image_size, width o height, siempre sale como nulo.

También hice la pregunta aquí si quieres más detalles.

¿Fue útil?

Solución

Sí, necesitas hackear un poco para que funcione, pero no tanto. Adaptación del propio procesador de imagen del accesorio_fu:

 validate :validate_image_size

  private

  def validate_image_size
    w, h = width, height

    unless w or h
      with_image do |img|
        w, h = img.columns, img.rows
      end
    end

    errors.add(:width, "must less than 250px")  if w > 250
    errors.add(:height, "must less than 250px")  if h > 250
  end
end

Otros consejos

No ha especificado en qué idioma y sistema está trabajando.

Aún así, para la mayoría de los frameworks web, creo que la forma estándar de hacerlo usando imagen magia . Pruebe la función de identificación. .

¿Has echado un vistazo a la mini-magia?

Puedes clonarlo desde aquí:

http://github.com/probablycorey/mini_magick/tree/master

Si necesita aprender sobre git, consulte estos enlaces:

http://git.or.cz/course/svn.html (curso intensivo con git, en comparación con subversion)

http://github.com/guides/git-screencasts (github screencasts)

Es una envoltura de rubí alrededor de las funciones de imagemagick (no estoy seguro si attach_fu usa esto internamente), pero es absolutamente mejor que RMagick (RMagick está extremadamente hinchado, con muchos problemas de memoria). De todos modos, la mini-magia te permitirá hacer todo lo que necesites y algo más. Consulte el archivo README que figura en el enlace de github anterior y le dará un resumen de cómo usarlo.

Aquí hay un fragmento:

#For resizing an image
image = MiniMagick::Image.from_file("input.jpg")
image.resize "100x100"
image.write("output.jpg")

#For determining properties of an image...
image = MiniMagick::Image.from_file("input.jpg")
image[:width] # will get the width (you can also use :height and :format)

Creo que le faltan gemas de prerrequisitos que deben instalarse para usar attach_fu para cambiar el tamaño de la imagen. He trabajado con el complemento attach_fu que depende de las siguientes gemas

  1. rmagick-2.11.0

  2. image_science-1.2.0

Asegúrese de haber instalado las gemas anteriores y realice cambios en el ancho y la altura en has_attachment para poder ver los cambios.

¡Buena suerte!

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