Вопрос

Есть идеи, как получить ширину и высоту миниатюры изображения?photo.width возвращает исходную ширину фотографии.Я сохраняю ширину миниатюры в базе данных, просто не знаю, как получить доступ к этому объекту.

Не работает:

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

Этого тоже не происходит:

<%= image_tag photo.authenticated_s3_url(:medium),
              :width => photo.authenticated_s3_url(:medium).width,
              :height => photo.authenticated_s3_url(:medium).height %>
Это было полезно?

Решение

По умолчанию Attachment_fu загружает только родительскую фотографию из таблицы, чтобы получить такую ​​информацию, как URL-адрес.Когда вы передаете ему опцию миниатюры, он просто добавляет соответствующий размер в конец имени файла перед расширением.

Если вы хотите узнать размер, вам нужно будет найти его в таблице с помощью чего-то вроде Photo.find_by_parent_id(photo.id, :conditions => ['thumbnail = ?', 'thumbnail_class_name']). ширина

Лучше заранее знать ширину фотографии, по крайней мере, если вы собираетесь использовать ее для чего-то, что будет часто запускаться.

Другие советы

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

Чтобы получить высоту и ширину, я бы сделал вот что

tname = 'crop_200x200'
height= @picture.thumbnails.select{ |r| r.thumbnail ==  tname }.first.height 
width= @picture.thumbnails.select{ |r| r.thumbnail == tname }.first.width 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top