Attachment_fu miniatura largura
-
21-08-2019 - |
Pergunta
Algumas ideias sobre como obter a largura e altura da imagem em miniatura? retornos photo.width as fotos originais largura. Eu sou armazenar a largura da miniatura no banco de dados, eu não sou apenas certo como acessar esse objeto.
não funciona:
<%= image_tag photo.authenticated_s3_url(:medium),
:width => photo.width,
:height => photo.height %>
Nem faz isso:
<%= image_tag photo.authenticated_s3_url(:medium),
:width => photo.authenticated_s3_url(:medium).width,
:height => photo.authenticated_s3_url(:medium).height %>
Solução
Por padrão, attachment_fu carrega apenas a foto dos pais de uma tabela para obter informações como o URL. Quando você passar-se uma opção de miniaturas ele simplesmente acrescenta o tamanho apropriado para o final do nome do arquivo antes da extensão.
Se você quiser obter o tamanho, você está indo para necessidade de procurá-lo na tabela com algo como, Photo.find_by_parent_id (photo.id,: conditions => [ '? Miniaturas =', 'thumbnail_class_name' ]). largura
Você é melhor saber a largura de uma foto de antemão, pelo menos se você está indo estar usando isso para qualquer coisa que possa ser executado frequentemente.
Outras dicas
:thumbnails => { :crop_200x200 => 'c200x200',
:default_200x200 => '200x200',
:ex_200x200 => '200x200!',
:gt_200x200 => '200x200>',
:lt_200x200 => '200x200<'}
Para obter a altura ea largura é isso que eu faria
tname = 'crop_200x200'
height= @picture.thumbnails.select{ |r| r.thumbnail == tname }.first.height
width= @picture.thumbnails.select{ |r| r.thumbnail == tname }.first.width