[couverture de Linux Magazine 81]

Perles de Mongueurs (21)

Article publié dans Linux Magazine 81, mars 2006.

[+ del.icio.us] [+ Developers Zone] [+ Bookmarks.fr] [Digg this] [+ My Yahoo!]

Fractionner une image

Pour la conférence YAPC::Europe 2005, les organisateurs avaient décidé de fournir un maximum d'information et de matériel aux participants, quitte à ce qu'il en ait trop. ;-)

Ainsi, ils ont mis à disposition sur le site de la conférence[1] une première carte sous la forme d'une image au format PNG[2], qui est un plan de Braga avec des points numérotés pour repérer les différents lieux relatifs à la conférence. Une autre personne décida alors de fournir l'équivalent Google Maps, ce qui rendit la précédente carte moins utile. Néanmoins je décidais d'essayer de l'imprimer pour en avoir une version papier sous la main une fois à Braga.

Après avoir récupéré cette image (qui pèse tout de même 5,1 Mo) je me suis demandé comment l'imprimer, car un premier essai me confirma qu'une impression directe en A4 était peu utile, le texte étant illisible. La solution était donc de fractionner l'image en plusieurs parties afin d'imprimer chacune sur une feuille A4. N'ayant pas envie de découper l'image « à la main », je commençais à chercher un mécanisme pour s'en charger pour moi.

Un rapide coup d'œil dans The Gimp ne m'indiqua rien de flagrant pour réaliser cette opération. Je me tournait ensuite vers les commandes en ligne de l'autre couteau suisse en matière d'images, ImageMagick. convert(1) ne permet « que » de convertir une image en un autre format (avec la possibilité d'appliquer légion d'effets spéciaux). mogrify(1) permet de transformer des images, par exemple pour les redimensionner et montage(1) d'assembler plusieurs images en une seule, mais rien pour fractionner une image. Restait conjure(1), qui exécute un script MSL (Magick Scripting Language), un machin un peu infâme en XML. Commençant à désespérer, je me mets à chercher sur Freshmeat puis le CPAN, où je suis tombé sur le module Image::Magick::Tiler[3] de Ron Savage.

Celui-ci rend cette opération d'une simplicité déconcertante. Jugez plutôt, pour fractionner le plan de Braga en 6 « carreaux », le petit script suivant suffit :

    #!/usr/bin/perl
    use strict;
    use Image::Magick::Tiler
    Image::Magick::Tiler->new(
        input_file  => shift || die("usage: $0 image [geometry [format]]"), 
        geometry    => shift || '2x2', 
        output_type => shift || 'png', 
        write => 1,  verbose => 1, 
    )->tile()

et il s'exécute ainsi :

    $ tiler braga.png 3x2

Image::Magick::Tiler crée alors les fichiers correspondants :

    $ ls -l
    total 10384
    -rw-r--r--  1 maddingue users  600908 nov  6 17:59 1-1.png
    -rw-r--r--  1 maddingue users  930240 nov  6 17:59 1-2.png
    -rw-r--r--  1 maddingue users  960254 nov  6 17:59 1-3.png
    -rw-r--r--  1 maddingue users  852730 nov  6 17:59 2-1.png
    -rw-r--r--  1 maddingue users 1171000 nov  6 17:59 2-2.png
    -rw-r--r--  1 maddingue users  750563 nov  6 17:59 2-3.png
    -rw-r--r--  1 maddingue users 5316276 jan 14  2005 braga.png

Détaillons un peu le fonctionnement de ce script (même s'il est plutôt simple).

On crée un objet (Image::Magick::Tiler->new(...)) et on exécute la méthode tile() qui effectue le travail proprement dit en fonction des paramètres passés à new().

À noter qu'il existe aussi un paramètre output_dir pour indiquer le répertoire où créer les images (par défaut dans le répertoire courant).

(Sébastien Aperghis-Tramoni (Maddingue), Marseille.pm - sebastien@aperghis.net)

Liens

[1] http://braga.yapceurope.org/

[2] http://braga.yapceurope.org/braga.png

[3] http://search.cpan.org/dist/Image-Magick-Tiler/

Les nouvelles de la communauté Perl

Perlcast

Le podcast (en français baladodiffusion) consiste à mettre à disposition sur le web des enregistrements sonores (ou vidéo) qu'ils vont aller télécharger pour les écouter à leur guise sur leur baladeur. Wikipédia donne une définition plus complète du podcasting sur http://fr.wikipedia.org/wiki/Podcasting.

La mode est donc aux podcasts, et la communauté Perl n'est pas en reste. Joshua MacAdams a monté début 2005 une émission hebdomadaire (nommée Perlcast) qui diffuse, sous forme de mp3 de longueur variable, des informations sur la communauté Perl (nouveaux modules, conférences, etc.).

Josh réalise également des interviews de contributeurs connus ou moins connus de la communauté Perl. Ces interviews sont probablement la partie la plus intéressante du site. Parmi les 18 interviews déjà disponibles, on trouve des célébrités (comme Damian Conway, Larry Wall ou Randal Schwartz), des auteurs de livres (Ian Langworth, chromatic, Peter Scott), des contributeurs bien connus (Andy Lester, Casey West), et bien d'autres personnes qui ont beaucoup de choses intéressantes à dire.

L'émission est en anglais (en américain, en fait). C'est un bon moyen de se ré-habituer l'oreille avant d'aller à une conférence ! ;-)

Le site Perlcast : http://perlcast.com/.

(Philippe "BooK" Bruhat, Lyon.pm & Paris.pm - book@mongueurs.net)

À vous !

Envoyez vos perles à perles@mongueurs.net, elles seront peut-être publiées dans un prochain numéro de Linux Magazine.

[IE7, par Dean Edwards] [Validation du HTML] [Validation du CSS]