Accueil Floss Manuals francophone

Puredata

Manipuler des images fixes

Après nous être familiarisés avec quelques-uns des concepts de base de l'affichage dans GEM et de la manipulation d'objets géométriques dans l'espace en trois dimensions, nous allons aborder la notion de texture. Voyons comment on peut charger des fichiers d'images bitmap (formées de pixels) dans une texture afin de l'afficher sur une forme géométrique.

Le patch ci-dessous permet de plaquer une image sur un rectangle, d'en changer la position et l'opacité. Pour le faire fonctionner :

Capture_manipulerimagesfixes4.png

Lien vers le patch : http://gitorious.org/flossmanuals-fr/pure-data/blobs/raw/master/patchs/GEM/manipulerimagesfixes.pd

  1. Créer la fenêtre d'affichage (1) en ayant d'abord cliqué sur les options d'affichage (0);
  2. Charger un fichier image (JPEG, PNG, TIFF) soit depuis votre disque dur en cliquant sur le bang vert, soit en indiquant le chemin de celui-ci dans le message;
  3. Manipuler la couche alpha (glissière grise) ou les paramètres du rectangle ou de la translation.

Il est à noter que lorsqu'on charge une image, elle prend toute la surface du rectangle. Dans le cas où l'image n'est pas dans un rapport 4/3, comme dans notre exemple, elle sera déformée. L'objet [pix_info] nous renseigne sur la taille de l'image chargée : on peut donc imaginer adapter la taille du rectangle en fonction des informations données par [pix_info] avec une division [/ ]. On peut aussi remplacer les deux derniers objets de la chaîne [pix_texture] et [rectangle] par un seul objet [pix_draw], et s'affranchir des contraintes de taille, mais l'objet [pix_draw] est beaucoup plus lent que l'exemple ci-dessus. Il est possible aussi de plaquer l'image comme texture sur tous les objets géométriques de GEM (Sphere, Cube, Cylinder, ...) plutôt qu'un rectangle à tester. Par ailleurs, pour réaliser un diaporama ou charger des images à la volée, il est possible de changer le message indiquant le chemin vers l'image par une variable [open < que l'on modifiera à volonté en utilisant un message, ainsi que d'utiliser des arguments variables () pour générer le chemin adéquat. L'exemple ci-dessous permet de charger des images 0.jpg, 1.jpg, 2.jpg, ... en modifiait simplement la valeur de la boîte nombre.

gem_diaporama

Enfin, le message [thread 1< permet, sous Linux, de charger les images dans un autre fil d'exécution que le principal de Pd, ce qui évite de créer une micro-coupure dans le rendu audio.