image science vs image magick

Posted by Fabien Jakimowicz Mon, 10 Mar 2008 02:54:00 GMT

Si vous avez du resizer des images sous rails, vous avez probablement touché à ce merveilleux gouffre de consommation mémoire qu’est Rmagick, binding ruby de la librarie image imagick. J’ai même entendu dire que certaines personnes tourneraient encore avec du fastcgi ce qui les écarte de ce problème, pas comme ceux qui doivent relancer leurs serveurs mongrel dans un cron (toute ressemblance avec des personnes réelles n’est que fortuite).

Il existe pourtant des alternatives … 2 dont une utilisant … image magick en ligne de commande. Ce qui en laisse une dernière : image science. La page du projet résume bien les choses :

Hate RMagic? Get Science! ImageScience!

ImageScience is a clean and happy Ruby library that generates thumbnails – and kicks the living crap out of RMagick. Oh, and it doesn’t leak memory like a sieve. :)

Je pense ne pas non plus trop me tromper en imaginant que vous utilisez en fait attachment_fu pour gérer vos uploads et génération de miniatures. Il s’agit de la majorité des cas sur lesquels j’ai pu travailler. Une des grandes beautés de ce plugin tient dans cette ligne :

@@default_processors = %w(ImageScience Rmagick MiniMagick) 

 

Il est vrai qu’elle n’est pas la seule responsable, mais elle indique une chose très interessante : le plugin gère plusieurs librairies sans modification du code / configuration !

Dès lors, sous léopard, un petit tour dans le terminal permet d’installer la chose :

soda:~ rider$ sudo gem install RubyInline
Successfully installed rubyforge-0.4.4
Successfully installed hoe-1.5.1
Successfully installed RubyInline-3.6.6
3 gems installed
Installing ri documentation for rubyforge-0.4.4...
Installing ri documentation for hoe-1.5.1...
Installing ri documentation for RubyInline-3.6.6...
Installing RDoc documentation for rubyforge-0.4.4...
Installing RDoc documentation for hoe-1.5.1...
Installing RDoc documentation for RubyInline-3.6.6...
soda:~ rider$ sudo port install freeimage
--->  Fetching freeimage
--->  Attempting to fetch FreeImage3100.zip from http://downloads.sourceforge.net/freeimage
--->  Verifying checksum(s) for freeimage
--->  Extracting freeimage
--->  Applying patches to freeimage
--->  Configuring freeimage
--->  Building freeimage with target all
--->  Staging freeimage into destroot
--->  Installing freeimage 3.10.0_0+darwin_9+universal
--->  Activating freeimage 3.10.0_0+darwin_9+universal
--->  Cleaning freeimage
soda:~ rider$ sudo gem install image_science
Successfully installed image_science-1.1.3
1 gem installed
Installing ri documentation for image_science-1.1.3...
Installing RDoc documentation for image_science-1.1.3...

 

AND VOILA ! On peut directement profiter de cette belle librairie limité uniquement au crop/resize des photos :) De plus, il semblerait que contrairement à ce que j’avais lu il y a quelques mois, les 2 librairies (imagescience et rmagick) peuvent cohabiter sur un même système.

Prochaine étape, une petite étude de la consommation mémoire entre les 2 librairies.

Posted in | no comments | Tags , , , , | atom

Trackbacks

Use the following link to trackback from your own site:
http://fabien.jakimowicz.com/trackbacks?article_id=image-science-vs-image-magick&day=10&month=03&year=2008

Comments

Leave a response

Leave a comment