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 %>
Foi útil?

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 
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top