Bonjours
Voici comment redimensionner une image a l'aide de 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
 
// #include <utilcls.h> // <---------ne pas oublier
 
void __fastcall TForm1::Button6Click(TObject *Sender)
{
// 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\\blondelle\\Mes documents\\Mes images\\YourBmpHere.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\\blondelle\\Mes documents\\Mes images\\fourmizThumbnail.jpg");
}