Extensions Image, Audio et Vidéo Administration et programmation

Affichage d'un objet image ou vidéo miniaturisé

Une miniature est une version réduite d'un objet image ou vidéo. Lorsque vous stockez une image dans la base de données, l'extension Image crée une miniature de l'image et la stocke dans une table d'attributs. Lorsque vous stockez un objet vidéo dans la base de données, l'extension Vidéo stocke, dans une table d'attributs, une miniature générique qui symbolise cet objet.

Par défaut, la taille d'une miniature créée automatiquement par l'extension Image est d'environ 112 x 84 pixels. La taille de la miniature vidéo générique créée par l'extension Vidéo est de 108 x 78 pixels. Les deux objets (miniature image et miniature vidéo générique) sont stockés au format GIF. Selon la densité des données de l'objet image ou vidéo, cela correspond approximativement à 4,5 à 5 ko. Lorsque vous stockez ou mettez à jour un objet image ou vidéo ayant des attributs définis par l'utilisateur, vous pouvez spécifier une miniature de la taille et du format qui vous conviennent.

Utilisez la fonction UDF Thumbnail de l'instruction SQL SELECT pour extraire une miniature de la base de données, et une variable de référence à un fichier pour transmettre la miniature au fichier concerné. Lorsque vous indiquez la fonction UDF, vous devez préciser le nom de la colonne de la table de base de données contenant le descripteur de l'objet image ou vidéo. Utilisez ensuite l'API DBiBrowse pour afficher l'objet image ou vidéo miniaturisé.

Par exemple, les instructions suivantes permettent de récupérer une image miniaturisée et de l'afficher :

long rc, outCount;
char nomfich_miniature[254];
FILE *indic_fich;
 
 
EXEC SQL BEGIN DECLARE SECTION;
         struct  {
         short len
       char data[10000];
         }tampon_miniature;
  EXEC SQL END DECLARE SECTION;
 
EXEC SQL SELECT THUMBNAIL(PICTURE)
     INTO :tampon_miniature
       FROM EMPLOYEE
     WHERE NAME = 'Anne Dupont';
 
strcpy (nomfich_miniature,"/tmp/dupont.tmb");
indic_fich=fopen(nomfich_miniature,"wb+");
outCount=fwrite(tampon_miniature.data, 1, tampon_miniature.len,
indic_fich);
fclose(indic_fich);
rc = DBiBrowse(
               NULL,                        /* utiliser programme affichage par défaut */
               MMDB_PLAY_FILE,              /* image miniature dans fichier */
               nomfich_miniature            /* contenu image miniature */
               MMDB_PLAY_WAIT);             /* attente fin programme */


[ Début de page | Page précédente | Page suivante | Table des matières | Index ]