Question

Toutes les idées sur la façon d'obtenir la largeur et la hauteur de l'image miniature? photo.width retourne la largeur de photos d'origine. Je stocke la largeur de la vignette dans la base de données, je ne suis pas sûr de savoir comment accéder à cet objet.

ne fonctionne pas:

<%= image_tag photo.authenticated_s3_url(:medium),
              :width => photo.width,
              :height => photo.height %>

Ni ne ceci:

<%= image_tag photo.authenticated_s3_url(:medium),
              :width => photo.authenticated_s3_url(:medium).width,
              :height => photo.authenticated_s3_url(:medium).height %>
Était-ce utile?

La solution

Par défaut, attachment_fu charge uniquement la photo de parent d'une table pour obtenir des informations comme l'url. Lorsque vous passez une option miniature, il ajoute simplement la taille appropriée à la fin du nom de fichier avant l'extension.

Si vous voulez obtenir la taille, vous allez avoir besoin de le chercher dans la table avec quelque chose comme, Photo.find_by_parent_id (photo.id,: « ? Miniature = » conditions => [, « thumbnail_class_name » ]) de largeur.

Vous êtes mieux connaître la largeur d'une photo à l'avance, au moins si vous allez utiliser cela pour tout ce qui pourrait être exécuté souvent.

Autres conseils

 :thumbnails => { :crop_200x200 => 'c200x200',
              :default_200x200 => '200x200',
              :ex_200x200 => '200x200!',
              :gt_200x200 => '200x200>',
              :lt_200x200 => '200x200<'}

Pour obtenir la hauteur et la largeur est ce que je ferais

tname = 'crop_200x200'
height= @picture.thumbnails.select{ |r| r.thumbnail ==  tname }.first.height 
width= @picture.thumbnails.select{ |r| r.thumbnail == tname }.first.width 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top