Question

Je veux pouvoir valider que l'image est exactement d'une certaine hauteur ou d'une certaine hauteur, ou si elle est carrée.

Dans le bloc de validation du modèle qui has_attachment, lorsque j'essaie d'accéder image_size, width, ou height, cela apparaît toujours comme nul.

j'ai aussi posé la question ici si vous voulez plus de détails.

Était-ce utile?

La solution

Oui, vous devez en pirater un peu pour le faire fonctionner, mais pas tellement. Adaptation du propre processeur d'image de attachment_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

Autres conseils

Vous n'avez pas précisé la langue et le système sur lesquels vous travaillez.

Néanmoins, pour la plupart des frameworks Web, je pense que la méthode standard consiste à utiliser image magie . Essayez la la fonction d'identification. .

Avez-vous jeté un œil à la mini-magie ?

Vous pouvez le cloner à partir d'ici :

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

Si vous avez besoin d'en savoir plus sur git, consultez ces liens :

http://git.or.cz/course/svn.html (cours intensif avec git, par rapport à subversion)

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

Il s'agit d'un wrapper rubis autour des fonctions imagemagick (je ne sais pas si attachment_fu l'utilise en interne), mais il est absolument meilleur que RMagick (RMagick est extrêmement gonflé, beaucoup de problèmes de mémoire).Quoi qu'il en soit, la mini-magie vous permettra de faire tout ce dont vous avez besoin et plus encore.Consultez le README répertorié sur le lien github ci-dessus, et il vous expliquera comment l'utiliser.

Voici un extrait :

#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)

Je pense qu'il vous manque des gem prérequis qu'il faut installer pour pouvoir utiliser attachment_fu dans le redimensionnement de l'image. J'ai travaillé avec le plugin attachment_fu qui dépend des gemmes suivantes

  1. rmagick-2.11.0

  2. image_science-1.2.0

Assurez-vous que vous avez installé les gemmes ci-dessus et apportez des modifications à la largeur et à la hauteur dans le has_attachment pour pouvoir voir les modifications.

Bonne chance!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top