Se você precisa criar miniaturas de imagens com Ruby, esqueça o RMagick. Embora ele tenha muito mais funcionalidades que, convenhamos, quase ninguém usa, chegou a hora de conhecer o Image Science que, segundo seus autores, não sofre dos mesmos problemas de memory leak que o RMagick.

O Image Science possui algumas funções específicas para a geração de miniaturas, como redimensionamento e crop, utilizando o Free Image. Segundo os criadores do projeto, ele não sofre dos mesmos problemas de memory leak que RMagick.

Como instalar

Para instalar o Free Image, você precisará do XCode. Não se esqueça de adicionar o SDK para o Mac OS X 10.3.9, que não vem selecionado por padrão.

Tela de instalação do XCode

Instalando o Free Image

Baixe o código-fonte do Free Image na página do projeto SourceForge. A versão que instalei foi a 3.10.0.

Após extrair os arquivos, abra o arquivo "MakeFile.osx" e altere as linhas abaixo de

LIBRARIES_PPC = -Wl,-syslibroot /Developer/SDKs/MacOSX10.3.9.sdk 
LIBRARIES_I386 = -Wl,-syslibroot /Developer/SDKs/MacOSX10.4u.sdk

para

LIBRARIES_PPC = -Wl,-syslibroot /Developer/SDKs/MacOSX10.3.9.sdk/usr/lib 
LIBRARIES_I386 = -Wl,-syslibroot /Developer/SDKs/MacOSX10.4u.sdk/usr/lib

Agora, basta compilar!

make
sudo make install

Instalando o Image Science

Para finalizar, basta instalar o Image Science.

sudo gem install RubyInline
sudo gem install image_science

O Image Science é muito simples. Para redimensionar imagens proporcionalmente, limitando o maior tamanho, faça algo como o exemplo abaixo.

ImageScience.with_image(file) do |img|
  img.thumbnail(100) do |thumb|
    thumb.save "picture-thumb.jpg"
  end
end

Se você quiser redimensionar a imagem sem se preocupar com a proporção, você pode usar o método resize.

ImageScience.with_image(file) do |img|
  img.resize(100, 150) do |thumb|
    thumb.save "picture-thumb.jpg"
  end
end

E, por último, existe o método cropped_thumbnail, que recorta a imagem no tamanho especificado.

ImageScience.with_image(file) do |img|
  img.cropped_thumbnail(100) do |thumb|
    thumb.save "picture-thumb.jpg"
  end
end

Comentários #

#1 Davis Zanetti Cabral disse:
09 Jul 08, 12:06PM

Mesmo sendo coisa de viado, fica mais simples pelo macports... "sudo port install freeimage" :P

Deixe um comentário





Não é aceito código HTML: adicione-o no pastie.org ou paste.milk-it.net e poste apenas o link.

Se este é seu primeiro comentário, ele terá que ser aprovado antes de ser exibido.

jQuery: Dominando o framework

Você quer aprender a usar jQuery de verdade? Então chegou a hora! Neste workshop você verá como funciona este framework de JavaScript, entendendo todos os aspectos que fazem do jQuery uma das melhores ferramentas para desenvolvimento de interfaces.

Saiba mais Fechar

Conheça também o HOWTO