Voici comment combiner deux images avec WIA, suite a ce tuto et ce post
Le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
// #include <utilcls.h> // <---------ne pas oublier
void __fastcall TForm1::Button7Click(TObject *Sender)
{
// 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\\blondelle\\Mes documents\\Mes images\\YourBmpHere.bmp");
// Remarque pour cet exemple :
// Les dimensions de la 2eme image doivent etre plus petites que la premiere afin
// que celle ci ne soit pas totalement masquée
// Chargement de la 2eme image dans le conteneur
vMSWIAImageFile2.OleFunction("LoadFile", "C:\\Documents and Settings\\blondelle\\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\\blondelle\\Mes documents\\Mes images\\fourmiz_ImageCombinee.JPG");
}