2009-02-01 6 views
1

Je veux être en mesure de valider l'image est exactement un certain avec ou une certaine hauteur, ou si elle est carrée.Comment validez-vous la largeur et la hauteur de l'image de attachment_fu?

Dans le bloc de validation du modèle qui has_attachment, lorsque je tente d'accéder image_size, width ou height, il sort toujours comme nulle. J'ai également posé la question here si vous voulez plus de détails.

+0

Désolé de ne pas répondre pendant un moment - je n'ai pas vérifié sur cette chose pour me mettre à jour par e-mail. –

Répondre

4

Oui, vous avez besoin de pirater un peu pour le faire fonctionner, mais pas tellement. L'adaptation du propre processeur d'image 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 
+0

Merci Marcos, cela semble prometteur. Je vais l'essayer! –

+0

Merci. Notez que cela varie un peu avec le processeur d'image. Avec MiniMagick, c'est 'img [: width]' et 'img [: height]' au lieu de 'img.columns' et' img.rows'. –

0

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

Toujours, pour la plupart des cadres Web, je pense que la façon standard de le faire en utilisant image magic. Essayez le identify function..

+0

Ah, je m'excuse. J'utilise le plugin attachment_fu dans Ruby on Rails. J'utilise mini magick comme processeur. Cependant, en fonction de votre commentaire, il me semble que je devrais creuser dans attachment_fu. –

0

Avez-vous jeté un oeil à mini-magick?

Vous pouvez git clone 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 de collision avec git, par rapport à la subversion)

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

Il est un wrapper rubis Arou et les fonctions de imagemagick (pas sûr si attachment_fu l'utilise en interne), mais c'est absolument mieux que RMagick (RMagick est extrêmement gonflé, beaucoup de problèmes de mémoire). Anywho, mini-magick vous permettra de faire toutes les choses dont vous avez besoin et puis certains. Découvrez le fichier README listé sur le lien github ci-dessus, et il vous donnera le résumé sur la façon de 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) 
0

Je pense que vous gemmes préalables manquants qui devraient être installés afin de pouvoir utiliser attachment_fu pour redimensionner l'image. Je travaille avec le plugin attachment_fu qui dépend de gemmes suivantes

  1. rmagick-2.11.0

  2. image_science-1.2.0

Vérifiez que vous avez installé au-dessus des pierres précieuses et apporter des modifications à la largeur et la hauteur dans le has_attachment alors vous pourriez voir les changements.

Bonne chance!

Questions connexes