2007 12/01
Instalando a RMagick no (*)Ubuntu Edgy
Tentar instalar a biblioteca para a manipulação de imagens “RMagick” foi uma coisa, no final das contas, bem simples e trivial.
Porém, até eu chegar na solução final que realmente funcionasse eu precisei passar por vários outros métodos que, para mim, não funcionaram.
Instalando
Eu poderia escrever todos os métodos que testei e não funcionaram, comentar sobre eles e tudo mais, porém prefiro apenas comentar sobre o método que funcionou.
Estou levando em consideração que você já possui o Ruby instalado e funcional em sua máquina.
Seguindo basicamente as etapas descritas no post já citado anteriormente, eu removi a “RMagick” que eu já havia instalado via RubyGems (numa tentativa mal-sucedida anterior =).
$ sudo gem uninstall rmagick
Lembrando que o “$” não deve ser digitado, apenas indica que você pode fazer o comando com um usuário normal desde que ele tenha permissões administrativas (sudoer) ou claro, com a conta root.
Para verificar que você não tem a “RMagick” definitivamente, você pode usar:
ruby -rrubygems -e "require 'RMagick'; puts Magick::Long_version;"
Se você executar o comando, deverá receber uma resposta dizendo não ser possível carregar a “RMagick”. Exemplo:
no such file to load -- RMagick (LoadError)
Com tudo isso certo, agora é só instalar a “RMagick” disponível nos repositórios do Ubuntu:
$ sudo aptitude install librmagick-ruby
Simples e prático! Vamos usar o mesmo comando anterior para testar a instalação e exibir a versão:
ruby -rrubygems -e "require 'RMagick'; puts Magick::Long_version;"
Desta vez o resultado deverá ser algo como:
This is RMagick 1.13.0 ($Date: 2006/06/26 23:32:37 $)
Copyright (C) 2006 by Timothy P. Hunter
Built with ImageMagick 6.2.4 11/01/06 Q16 http://www.imagemagick.org
Built for ruby 1.8.4 (2005-12-24) [i486-linux]
...
Procurei algum código simples para fazer o teste final. Achei este gerador de thumbnails bastante simples mas eficaz para o teste. Fiz umas pequenas alterações e temos:
require 'RMagick'
maxwidth = 160
maxheight = 160
aspectratio = maxwidth.to_f / maxheight.to_f
imgfile = ‘world’
pic = Magick::Image.read(imgfile + ‘.jpg’).first
imgwidth = pic.columns
imgheight = pic.rows
imgratio = imgwidth.to_f / imgheight.to_f
if imgratio > aspectratio
scaleratio = maxwidth.to_f / imgwidth
else
scaleratio = maxheight.to_f / imgheight
end
thumb = pic.resize(scaleratio)
white_bg = Magick::Image.new(maxwidth, thumb.rows)
pic = white_bg.composite(thumb, Magick::CenterGravity, Magick::OverCompositeOp)
pic.write(imgfile + ‘.thumb.jpg’)
Ele vai procurar uma imagem de nome “world.jpg” no diretório atual e vai tentar gerar um thumbnail sob o nome “word.thumb.jpg”.
Se tudo der certo, você vai ver as duas imagens no diretório, indicando o sucesso na operação:
$ ls *.jpg -l
-rw-r--r-- 1 klaus klaus 36802 2007-01-12 10:54 world.jpg
-rw-r--r-- 1 klaus klaus 20895 2007-01-12 10:55 world.thumb.jpg
Resumindo
O processo de instalação foi bem simplificado no final das contas, porém, encontrar o método que funciona é o que acabou me consumindo algum tempo.