Attachment_Fu ширина миниатюры
-
21-08-2019 - |
Вопрос
Есть идеи, как получить ширину и высоту миниатюры изображения?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