Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

Vous n'avez pas encore de compte Developpez.com ? L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Developpez.com

C++

Choisissez la catégorie, puis la rubrique :

logo
Sommaire > Windows Image Acquisition (WIA)
        Comment imprimer des images avec l'assistant Photograhie Windows ?
        Comment lister les informations sur les filtres ?
        Comment redimensionner une image à l'aide de WIA ?
        Comment combiner deux images à l'aide de WIA ?
        Comment fusionner verticalement deux images à l'aide de WIA ?
        Comment couper/rogner une image à l'aide de WIA ?
        Comment créer une image TIFF multipages à l'aide de WIA ?
        Comment contrôler qu'une image GIF est animée ou standard à l'aide de WIA ?
        Comment modifier le TAG (Titre, Commentaire, Auteur,...) d'une image à l'aide de WIA ?
        Comment lister les propriétés d'une image à l'aide de WIA ?



Comment imprimer des images avec l'assistant Photograhie Windows ?
Créé le 22/11/2010[haut]
auteurs : ero-sennin, yarp, blondelle
Pour utiliser l'assistant Photographie Windows il vous faut tout d'abord créer une connexion avec le WIA, ajouter les images à imprimer, et pour finir il ne suffit plus qu'à lancer l'assistant :

#include <utilcls.h> // <---- ne pas oublier d'inclure
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// impression d'image en utilisant WIA
Variant vMSWIACommonDialog, vMSWIAVector;
// créer un objet dialog
vMSWIACommonDialog = Variant::CreateObject("WIA.CommonDialog");
vMSWIAVector = Variant::CreateObject("WIA.Vector");
// sélection des images
vMSWIAVector.OleProcedure("Add", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\imageJPEG.jpg");
vMSWIAVector.OleProcedure("Add", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\imageBMP.bmp");
// impression
vMSWIACommonDialog.OleProcedure("ShowPhotoPrintingWizard", vMSWIAVector);
 
vMSWIACommonDialog = Unassigned;
vMSWIAVector = Unassigned;
}

Comment lister les informations sur les filtres ?
Créé le 22/11/2010[haut]
auteurs : blondelle, pottiez
Les filtres permettent de faire des opérations sur les images grâce au WIA.
Ce code simple permet d'obtenir toutes les informations sur ces différents filtres dans un Mémo :

#include <utilcls.h> // <----- ne pas oublier d'inclure
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    // lister Informations Générales Filtres
 
    Variant vMSWIAImageProcess;
    String sWIAFiltres, sWIADescriptFiltres;
    int iMSWIAnbFiltreDispo;
 
    // creation du gestionnaire de filtre
    vMSWIAImageProcess = Variant::CreateObject("WIA.ImageProcess");
    // nombre de filtres disponibles
    iMSWIAnbFiltreDispo = vMSWIAImageProcess.OlePropertyGet("FilterInfos").OlePropertyGet("Count");
    // boucle sur l'ensemble des filtres disponibles
    Memo1->ScrollBars = ssVertical;
    for(int x = 1; x <= iMSWIAnbFiltreDispo; x++)
    {
        sWIAFiltres = vMSWIAImageProcess.OlePropertyGet("FilterInfos", x).OlePropertyGet("Name");
        Memo1->Lines->Add(sWIAFiltres);
        sWIADescriptFiltres = vMSWIAImageProcess.OlePropertyGet("FilterInfos", x).OlePropertyGet("Description");
        Memo1->Lines->Add(sWIADescriptFiltres);
        Memo1->Lines->Add("\r\n**************\r\n");
    }
}
lien : en Aide MSDN sur les filtres WIA

Comment redimensionner une image à l'aide de WIA ?
Créé le 22/11/2010[haut]
auteur : blondelle
Pour redimensionner une image, il suffit d'utiliser le bon filtre :

#include <utilcls.h> // <---------ne pas oublier
 
// redimensionner Image
 
Variant vMSWIAImageProcess, vMSWIAImageFile;
 
// Création conteneur pour l'image à manipuler
vMSWIAImageFile = Variant::CreateObject("WIA.ImageFile");
// Création du gestionnaire de filtre
vMSWIAImageProcess = Variant::CreateObject("WIA.ImageProcess");
// Chargement de l'image dans le conteneur
vMSWIAImageFile.OleFunction("LoadFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\imageOrigine.bmp");
// Ajoute le filtre pour redimensionner l'image (Scale)
vMSWIAImageProcess.OlePropertyGet("Filters").OleProcedure("Add", (vMSWIAImageProcess.OlePropertyGet("FilterInfos", "Scale").OlePropertyGet("FilterID")));
// Définit la largeur maxi pour le redimensionnement
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "MaximumWidth", 90);
// Définit la hauteur maxi pour le redimensionnement
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "MaximumHeight", 90);
// remarque :
// Les proportions sont conservées. Le filtre prend en compte
// les ratios et adapte la taille pour ne pas dépasser les valeurs maxi définies.
// Application du filtre à l'image
vMSWIAImageFile = vMSWIAImageProcess.OleFunction("Apply", vMSWIAImageFile);
// Enregistre l'image redimensionnée
vMSWIAImageFile.OleFunction("SaveFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\imageFinale.jpg");
lien : faq Comment lister les informations sur les filtres ?

Comment combiner deux images à l'aide de WIA ?
Créé le 22/11/2010[haut]
auteur : blondelle
Pour combiner deux images, il faut charger les images à combiner, puis utiliser le filtre approprié :

#include <utilcls.h> // <---------ne pas oublier
 
// combiner Deux Images
 
Variant vMSWIAImageProcess, vMSWIAImageFile1, vMSWIAImageFile2;
 
// Création conteneur pour l'image à manipuler
vMSWIAImageFile1 = Variant::CreateObject("WIA.ImageFile");
// remarque: vous devez créer un conteneur pour chaque image
vMSWIAImageFile2 = Variant::CreateObject("WIA.ImageFile");
// Création du gestionnaire de filtre
vMSWIAImageProcess = Variant::CreateObject("WIA.ImageProcess");
 
// Chargement de la 1ere image dans le conteneur
vMSWIAImageFile1.OleFunction("LoadFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\YourBmpHere.bmp");
// Remarque pour cet exemple :
// Les dimensions de la 2ème image doivent être plus petites que la première afin
// que celle-ci ne soit pas totalement masquée
// Chargement de la 2ème image dans le conteneur
vMSWIAImageFile2.OleFunction("LoadFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\Photo\\Photo.jpg");
 
// Ajoute le filtre pour combiner/fusionner (Stamp)
vMSWIAImageProcess.OlePropertyGet("Filters").OleProcedure("Add", (vMSWIAImageProcess.OlePropertyGet("FilterInfos", "Stamp").OlePropertyGet("FilterID")));
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "ImageFile", vMSWIAImageFile2);
// définit la position horizontale de la 2eme image pour la fusion
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "Left", (vMSWIAImageFile1.OlePropertyGet("Width") - vMSWIAImageFile2.OlePropertyGet("Width")));
// définit la position verticale de la 2eme pour la fusion
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "Top", (vMSWIAImageFile1.OlePropertyGet("Height") - vMSWIAImageFile2.OlePropertyGet("Height")));
 
// Application du filtre à la 1ere image
vMSWIAImageFile1 = vMSWIAImageProcess.OleFunction("Apply", vMSWIAImageFile1);
// sauvegarde de la nouvelle image
vMSWIAImageFile1.OleFunction("SaveFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\fourmiz_ImageCombinee.JPG");
lien : faq Comment lister les informations sur les filtres ?

Comment fusionner verticalement deux images à l'aide de WIA ?
Créé le 22/11/2010[haut]
auteur : blondelle
Pour fusionner deux images, il faut charger les images à fusionner, puis utiliser le filtre approprié :

#include <utilcls.h> // <---------ne pas oublier
 
// Fusion Verticale Deux Images
Variant Largeur, Hauteur, vMSWIAVector, vMSWIAImageProcess, vMSWIAImageFile1, vMSWIAImageFile2, vMSWIAImageFile3;
long C;
 
// Création conteneur pour l'image à manipuler
vMSWIAImageFile1 = Variant::CreateObject("WIA.ImageFile");
// remarque: vous devez créer un conteneur pour chaque image
vMSWIAImageFile2 = Variant::CreateObject("WIA.ImageFile");
// Création du gestionnaire de filtre
vMSWIAImageProcess = Variant::CreateObject("WIA.ImageProcess");
 
// Chargement de la 1ère image dans le conteneur
// (l'image qui sera placée au-dessus)
vMSWIAImageFile1.OleFunction("LoadFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\Grue_Atelier.jpg");
// Chargement de la 2ème image dans le conteneur
// (l'image qui sera placée dessous)
vMSWIAImageFile2.OleFunction("LoadFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\Photo\\Photo.jpg");
 
// ------création d'un support pour fusionner les deux images
if(vMSWIAImageFile1.OlePropertyGet("Width") > vMSWIAImageFile2.OlePropertyGet("Width"))
        {
        Largeur = vMSWIAImageFile1.OlePropertyGet("Width");
        }
else
        {
        Largeur = vMSWIAImageFile2.OlePropertyGet("Width");
        }
Hauteur = vMSWIAImageFile1.OlePropertyGet("Height") + vMSWIAImageFile2.OlePropertyGet("Height");
 
C = 0x80000004; // couleur de fond
vMSWIAVector = Variant::CreateObject("WIA.Vector");
vMSWIAVector.OleProcedure("Add", C);
vMSWIAVector.OleProcedure("Add", C);
vMSWIAVector.OleProcedure("Add", C);
vMSWIAVector.OleProcedure("Add", C);
 
vMSWIAImageFile3 = vMSWIAVector.OlePropertyGet("ImageFile", 2, 2);
vMSWIAImageProcess.OlePropertyGet("Filters").OleProcedure("Add", (vMSWIAImageProcess.OlePropertyGet("FilterInfos", "Scale").OlePropertyGet("FilterID")));
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "MaximumWidth", Largeur);
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "MaximumHeight", Hauteur);
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "PreserveAspectRatio", false);
vMSWIAImageFile3 = vMSWIAImageProcess.OleFunction("Apply", vMSWIAImageFile3);
// ------------------
// réinitialisation des filtres
for(int i = 1; i <= vMSWIAImageProcess.OlePropertyGet("Filters").OlePropertyGet("Count"); i++)
{
vMSWIAImageProcess.OlePropertyGet("Filters").OleProcedure("Remove", i);
}
// fusionne l'image1 dans le support
vMSWIAImageProcess.OlePropertyGet("Filters").OleProcedure("Add", (vMSWIAImageProcess.OlePropertyGet("FilterInfos", "Stamp").OlePropertyGet("FilterID")));
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "ImageFile", vMSWIAImageFile1);
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "Left", 0);
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "Top", 0);
vMSWIAImageFile3 = vMSWIAImageProcess.OleFunction("Apply", vMSWIAImageFile3);
// fusionne l'image2 dans le support
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "ImageFile", vMSWIAImageFile2);
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "Left", 0);
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "Top", vMSWIAImageFile1.OlePropertyGet("Height"));
// wiaFormatBMP ="{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}";
// wiaFormatPNG ="{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}";
// wiaFormatGIF ="{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}";
// wiaFormatJPEG ="{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}";
// wiaFormatTIFF ="{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}";
vMSWIAImageProcess.OlePropertyGet("Filters").OleProcedure("Add", (vMSWIAImageProcess.OlePropertyGet("FilterInfos", "Convert").OlePropertyGet("FilterID")));
vMSWIAImageProcess.OlePropertyGet("Filters", 2).OlePropertyGet("Properties", "FormatID").OlePropertySet("Value", "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}");
vMSWIAImageProcess.OlePropertyGet("Filters", 2).OlePropertyGet("Properties", "Quality").OlePropertySet("Value", 90);
vMSWIAImageFile3 = vMSWIAImageProcess.OleFunction("Apply", vMSWIAImageFile3);
// sauvegarde de la nouvelle image
vMSWIAImageFile3.OleFunction("SaveFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\resultat_Fusion_Deux_images.jpg");
lien : faq Comment lister les informations sur les filtres ?

Comment couper/rogner une image à l'aide de WIA ?
Créé le 22/11/2010[haut]
auteur : blondelle
Pour couper ou rogner une image, il suffit d'utiliser le filtre approprié :

#include <utilcls.h> // <---------ne pas oublier
 
// couper Image
 
Variant vMSWIAImageProcess, vMSWIAImageFile;
 
// Création conteneur pour l'image à manipuler
vMSWIAImageFile = Variant::CreateObject("WIA.ImageFile");
// Création du gestionnaire de filtre
vMSWIAImageProcess = Variant::CreateObject("WIA.ImageProcess");
 
// Chargement de l'image dans le conteneur
vMSWIAImageFile.OleFunction("LoadFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\Grue_Atelier.jpg");
 
// Ajoute le filtre pour Couper/Rogner l'image (Crop)
vMSWIAImageProcess.OlePropertyGet("Filters").OleProcedure("Add", (vMSWIAImageProcess.OlePropertyGet("FilterInfos", "Crop").OlePropertyGet("FilterID")));
// La coupe sera effectuée à l'intérieur du cadre défini ci-dessous:
// **********
// definit la position à partir du bord gauche pour la coupe
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "Left", 0);
// definit la position à partir du bord supérieur pour la coupe
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "Top", 0);
// definit la position à partir du bord droit pour la coupe
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "Right", (vMSWIAImageFile.OlePropertyGet("Width") / 3));
// definit la position à partir du bord inférieur pour la coupe
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "Bottom", (vMSWIAImageFile.OlePropertyGet("Height") / 3));
 
// application du filtre
vMSWIAImageFile = vMSWIAImageProcess.OleFunction("Apply", vMSWIAImageFile);
 
// Sauvegarde de la nouvelle image
vMSWIAImageFile.OleFunction("SaveFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\sauvegarde_Image_Coupee.JPG");
lien : faq Comment lister les informations sur les filtres ?

Comment créer une image TIFF multipages à l'aide de WIA ?
Créé le 22/11/2010[haut]
auteur : blondelle
Pour créer une image multipages, il faut tout d'abord charger les différentes images utilisées pour l'image finale, puis il faut utiliser le filtre approprié :

#include <utilcls.h> // <---------ne pas oublier
 
// création Image Multipage TIFF
Variant vMSWIAImageFile1, vMSWIAImageFile2, vMSWIAImageFile3, vMSWIAImageProcess;
 
// Création des conteneurs pour les images à manipuler
vMSWIAImageFile1 = Variant::CreateObject("WIA.ImageFile");
vMSWIAImageFile2 = Variant::CreateObject("WIA.ImageFile");
vMSWIAImageFile3 = Variant::CreateObject("WIA.ImageFile");
 
// Création du gestionnaire de filtre
vMSWIAImageProcess = Variant::CreateObject("WIA.ImageProcess");
 
// chargement des images
vMSWIAImageFile1.OleFunction("LoadFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\Grue_Atelier.jpg");
vMSWIAImageFile2.OleFunction("LoadFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\resultat_Fusion_Deux_images.JPG");
vMSWIAImageFile3.OleFunction("LoadFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\fourmiz_ImageCombinee.JPG");
 
// Ajoute un filtre pour gérer un premier Frame/Multipage
vMSWIAImageProcess.OlePropertyGet("Filters").OleProcedure("Add", (vMSWIAImageProcess.OlePropertyGet("FilterInfos", "Frame").OlePropertyGet("FilterID")));
// définit le contenu du Frame
vMSWIAImageProcess.OlePropertyGet("Filters", (vMSWIAImageProcess.OlePropertyGet("Filters").OlePropertyGet("Count"))).OlePropertySet("Properties", "ImageFile", vMSWIAImageFile2);
// Ajoute un filtre pour gérer un deuxieme Frame/Multipage
vMSWIAImageProcess.OlePropertyGet("Filters").OleProcedure("Add", (vMSWIAImageProcess.OlePropertyGet("FilterInfos", "Frame").OlePropertyGet("FilterID")));
// définit le contenu du Frame
vMSWIAImageProcess.OlePropertyGet("Filters", (vMSWIAImageProcess.OlePropertyGet("Filters").OlePropertyGet("Count"))).OlePropertySet("Properties", "ImageFile", vMSWIAImageFile3);
// Ajoute un filtre de conversion pour la nouvelle image (au format TIFF)
// (TIFF est le seul format qui supporte la sauvegarde en multi-frames)
vMSWIAImageProcess.OlePropertyGet("Filters").OleProcedure("Add", (vMSWIAImageProcess.OlePropertyGet("FilterInfos", "Convert").OlePropertyGet("FilterID")));
// wiaFormatTIFF ="{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}"
vMSWIAImageProcess.OlePropertyGet("Filters", (vMSWIAImageProcess.OlePropertyGet("Filters").OlePropertyGet("Count"))).OlePropertySet("Properties", "FormatID", "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}");
 
// Application du filtre à la 1ere image:
// (ajoute 2 frames dans la 1ere image, au format Tiff
vMSWIAImageFile1 = vMSWIAImageProcess.OleFunction("Apply", vMSWIAImageFile1);
 
// sauvegarde de la nouvelle image
vMSWIAImageFile1.OleFunction("SaveFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\monImageMultipage.tif");
lien : faq Comment lister les informations sur les filtres ?

Comment contrôler qu'une image GIF est animée ou standard à l'aide de WIA ?
Créé le 22/11/2010[haut]
auteur : blondelle
Pour savoir si l'image GIF chargé est animé, il suffit de tester la propriété IsAnimated de cette image :

#include <utilcls.h> // <---------ne pas oublier
 
// contrôle Format Image GIF
 
Variant vMSWIAImageFile;
 
// Création conteneur pour l'image à manipuler
vMSWIAImageFile = Variant::CreateObject("WIA.ImageFile");
 
// chargement de l'image
vMSWIAImageFile.OleFunction("LoadFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\YourBmpHere1.gif");
 
if(vMSWIAImageFile.OlePropertyGet("IsAnimated"))
{
    ShowMessage("Gif animé");
}
else
{
    ShowMessage("Gif standard");
}

Comment modifier le TAG (Titre, Commentaire, Auteur,...) d'une image à l'aide de WIA ?
Créé le 22/11/2010[haut]
auteur : blondelle
Pour modifier les TAG d'une image il suffit de procéder de la manière suivante :

#include <utilcls.h> // <---------ne pas oublier
 
// Titre, Commentaire, Auteur, Mots clés
 
// création TAG TITRE copie Image
Variant vMSWIAVector, vMSWIAImageProcess, vMSWIAImageFile;
 
// Création conteneur pour l'image à manipuler
vMSWIAImageFile = Variant::CreateObject("WIA.ImageFile");
// creation du gestionnaire de filtre
vMSWIAImageProcess = Variant::CreateObject("WIA.ImageProcess");
// création d'un vecteur
// (Un vecteur permet de créer une collection pour des valeurs du même type.)
vMSWIAVector = Variant::CreateObject("WIA.Vector");
 
// chargement de l'image
vMSWIAImageFile.OleFunction("LoadFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\Grue_Atelier.jpg");
 
//  définit le filtre pour gérer l'EXIF
vMSWIAImageProcess.OlePropertyGet("Filters").OleProcedure("Add", (vMSWIAImageProcess.OlePropertyGet("FilterInfos", "Exif").OlePropertyGet("FilterID")));
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "ID", 40091);
                                                          // 40091  Titre
                                                                        // 40092  Commentaire
                                                          // 40093  Auteur
                                                          // 40094  Mots clés
// spécifie le type de valeur pour le propriété du filtre:
// constante VectorOfBytesImagePropertyType = 1101 (la valeur est un vecteur)
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "Type", 1101);
// voir le fichier d'aide fourni avec la librairie WIA pour
// obtenir la liste des constantes disponibles
// stocke une chaîne de caractères dans le vecteur
vMSWIAVector.OleProcedure("SetFromString", "Test de TAG 'TITRE' : utilisation de WIA v2.0");
// applique au filtre le contenu du vecteur
vMSWIAImageProcess.OlePropertyGet("Filters", 1).OlePropertySet("Properties", "Value", vMSWIAVector);
 
// application du filtre dans l'image
vMSWIAImageFile = vMSWIAImageProcess.OleFunction("Apply", vMSWIAImageFile);
 
// sauvegarde de l'image
vMSWIAImageFile.OleFunction("SaveFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\fourmiz_Test_EXIF.JPG");

Comment lister les propriétés d'une image à l'aide de WIA ?
Créé le 22/11/2010[haut]
auteur : blondelle
Pour lister les propriétés d'une image il suffit de procéder de la manière suivante, ici on les charge dans un TMemo :

#include <utilcls.h> // <---------ne pas oublier
 
// lister les proprietés d'une image
Variant vMSWIAImageFile;
String S;
 
// Création conteneur pour l'image à manipuler
vMSWIAImageFile = Variant::CreateObject("WIA.ImageFile");
 
// Chargement de l'image dans le conteneur
vMSWIAImageFile.OleFunction("LoadFile", "C:\\Documents and Settings\\toto\\Mes documents\\Mes images\\monImageMultipage.tif");
 
// Boucle sur la collection de propriétés
for(int nb = 1; nb <= vMSWIAImageFile.OlePropertyGet("Properties").OlePropertyGet("Count"); nb++)
{
    S = vMSWIAImageFile.OlePropertyGet("Properties", nb).OlePropertyGet("Name");
    S = S + " (";
    S = S + vMSWIAImageFile.OlePropertyGet("Properties", nb).OlePropertyGet("PropertyID");
    S = S + ") =";
    if(vMSWIAImageFile.OlePropertyGet("Properties", nb).OlePropertyGet("IsVector"))
    {
        S = S + " - vector data not emitted - ";
    }
    // RationalImagePropertyType = 1006
    else if(vMSWIAImageFile.OlePropertyGet("Properties", nb).OlePropertyGet("Type") == 1006)
    {
        S = S + (vMSWIAImageFile.OlePropertyGet("Properties", nb).OlePropertyGet("Value").OlePropertyGet("Numerator"));
        S = S + "/";
        S = S + (vMSWIAImageFile.OlePropertyGet("Properties", nb).OlePropertyGet("Value").OlePropertyGet("Denominator"));
    }
    else if(vMSWIAImageFile.OlePropertyGet("Properties", nb).OlePropertyGet("Type") == 1002)
    {
        S =S + """" + (vMSWIAImageFile.OlePropertyGet("Properties", nb).OlePropertyGet("Value")) + """";
    }
    else
        S = S + (vMSWIAImageFile.OlePropertyGet("Properties", nb).OlePropertyGet("Value"));
    Memo1->Lines->Add(S);
}


Consultez les autres F.A.Q.


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Contacter le responsable de la rubrique C++

Partenaire : Hébergement Web