Et puis il y a ImageBuilder (une classe dans Zena). On définit des formats
d'images du type:

'med'  =>   { :name=>'med',  :size=>:limit, :width=>280, :height=>186,
:gravity=>Magick::CenterGravity   },
'pv'   =>   { :name=>'pv',   :size=>:force, :width=>70,  :height=>70 ,
:gravity=>Magick::CenterGravity   },

Et si la fonction est "force", l'image sera redimensionnée puis coupée. Si
c'est "limit", elle sera réduite pour tenir dans le rectangle définit par
width/height. Ça lit aussi les tags exif.

Au sein de Zena, les images sont générées une fois en cache dans le
filesystem, ImageBuilder est utilisé dans les vues pour calculer la taille
de l'image à afficher (sans charger l'image réelle).

"ImageBuilder", c'est un fichier sans autre dépendances avec Zena. Si
quelqu'un voulait utiliser une ligne de commande au lieu de RMagick, il
faudrait simplement remplacer les Proc.new par une construction d'un appel
système avec "convert"...

Et un petit conseil: utiliser YSlow une fois le site en place pour s'assurer
que les images ne sont pas chargées à chaque requête.... ;-)

G.

2011/6/15 Nico Taing <[email protected]>

> +1 pour DragonFly, superflexible, tu peux redimensionner tes images a la
> volee. Il est utilisable avec differents data store (S3, Mongo, CouchDB etc
> ), et surtout son atout c'est qu'il se positionne en tant que middleware
> (framework pour Rack).
>
>
> 2011/6/14 Nicolas Blanco <[email protected]>
>
>> Pour troller sur les plugins d'image, je dirais que je suis passé
>> depuis longtemps sur Dragonfly.
>> Je trouve le concept de mettre les tailles de miniatures dans le
>> modèle une grosse erreur (c'est de la Vue les tailles de miniatures).
>> La philosophie de Dragonfly de définir les tailles des images dans la
>> vue et d'utiliser un système de cache comme rack-cache est beaucoup
>> plus flexible et bien pensée.
>>
>> 2011/6/14 Michel Belleville <[email protected]>:
>> > (franchement c'est une histoire de goûts parce que perso je préfère le
>> côté
>> > "image traitée comme un champs de base" de paperclip que le côté "ah ben
>> > faisons une classe pour uploader les fichiers" de CarrierWave ; après du
>> > moment que ça marche et que ça te convient...)
>> >
>> > Michel Belleville
>> >
>> >
>> > 2011/6/14 Nicolas Blanco <[email protected]>
>> >>
>> >> +1 pour l'explication de Michel. Par contre reste sur CarrierWave si
>> >> tu peux, c'est une librairie qui est mieux maintenue que Paperclip. Et
>> >> CW peut aussi utiliser MiniMagick qui ne nécessite pas l'installation
>> >> de RMagick, juste des binaires ImageMagick... Faut lire la doc de CW
>> >> (RTFM, toussa).
>> >>
>> >> 2011/6/14 Michel Belleville <[email protected]>:
>> >> > En fait ton problème n'est pas qu'il y ait ou pas quelque chose de
>> mieux
>> >> > que
>> >> > paperclip ou carrierwave, ton problème c'est que si tu veux gérer des
>> >> > images
>> >> > (avec des onglets, avec un redimensionnement propre, avec des tailles
>> >> > différentes, etc.) tu as besoin d'une library d'édition d'images
>> comme
>> >> > imagemagick. J'ai bien dit imagemagick (library d'édition d'image),
>> pas
>> >> > rmagick ("glue" ruby pour utiliser rmagick en ruby), parce que par
>> >> > exemple
>> >> > paperclip fonctionne sans utiliser rmagick du tout (il attaque
>> >> > directement
>> >> > imagemagick à la ligne de commande sans avoir besoin de passer par
>> >> > rmagick).
>> >> >
>> >> > Donc à moins que tu aies un problème pour installer imagemagick sous
>> >> > windows
>> >> > (ce qui pourrait arriver, je ne connais pas trop bien windows) tu
>> peux
>> >> > essayer paperclip qui est plus cool et qui n'a pas besoin de rmagick
>> du
>> >> > tout.
>> >> >
>> >> > Michel Belleville
>> >> >
>> >> >
>> >> > 2011/6/14 Kim HENOCQUE <[email protected]>
>> >> >>
>> >> >> Bonjour à tous,
>> >> >>
>> >> >> Je recherche une façon simple d'ajouter des images à mes produits.
>> >> >> Problème, je suis sur windows, et l'installation de rmagick me donne
>> >> >> des
>> >> >> erreurs.
>> >> >> Avant d'aller chercher la petite bête, je voulais savoir s'il n'y
>> avait
>> >> >> pas autres choses que paperclip ou carrierwave.
>> >> >>
>> >> >> Merci à vous :)
>> >> >>
>> >> >>
>> >> >> --
>> >> >> Vous avez reçu ce message, car vous êtes abonné au groupe
>> "Railsfrance"
>> >> >> de
>> >> >> Google Groups.
>> >> >> Pour transmettre des messages à ce groupe, envoyez un e-mail à
>> >> >> l'adresse
>> >> >> [email protected]
>> >> >> Pour résilier votre abonnement envoyez un e-mail à l'adresse
>> >> >> [email protected]
>> >> >
>> >> > --
>> >> > Vous avez reçu ce message, car vous êtes abonné au groupe
>> "Railsfrance"
>> >> > de
>> >> > Google Groups.
>> >> > Pour transmettre des messages à ce groupe, envoyez un e-mail à
>> l'adresse
>> >> > [email protected]
>> >> > Pour résilier votre abonnement envoyez un e-mail à l'adresse
>> >> > [email protected]
>> >>
>> >>
>> >>
>> >> --
>> >> Nicolas Blanco, Web developper
>> >>
>> >> http://www.nicolasblanco.fr
>> >> Jabber/GoogleTalk : [email protected]
>> >> Twitter : http://twitter.com/slainer68
>> >> Github : http://github.com/slainer68
>> >> Skype : slainer68
>> >>
>> >> --
>> >> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance"
>> de
>> >> Google Groups.
>> >> Pour transmettre des messages à ce groupe, envoyez un e-mail à
>> l'adresse
>> >> [email protected]
>> >> Pour résilier votre abonnement envoyez un e-mail à l'adresse
>> >> [email protected]
>> >
>> > --
>> > Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance"
>> de
>> > Google Groups.
>> > Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
>> > [email protected]
>> > Pour résilier votre abonnement envoyez un e-mail à l'adresse
>> > [email protected]
>>
>>
>>
>> --
>> Nicolas Blanco, Web developper
>>
>> http://www.nicolasblanco.fr
>> Jabber/GoogleTalk : [email protected]
>> Twitter : http://twitter.com/slainer68
>> Github : http://github.com/slainer68
>> Skype : slainer68
>>
>> --
>> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
>> Google Groups.
>> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
>> [email protected]
>> Pour résilier votre abonnement envoyez un e-mail à l'adresse
>> [email protected]
>>
>
>
>
> --
> Nico Taing
> t: @gomiso <http://twitter.com/gomiso>, 
> @Nico_Taing<http://twitter.com/Nico_Taing>
> p: (415) 351-9756
> http://gomiso.com
>
>  --
> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
> Google Groups.
> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
> [email protected]
> Pour résilier votre abonnement envoyez un e-mail à l'adresse
> [email protected]
>

-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]

Répondre à