Bonjour,
je souhaite utilisrer l'api GDi+ pour réduire la taille d'une image
je me heurte à la méthode GdipGetImageEncoders
mon code :
lorsque je quitte ce bout de code j'ai un message d'erreur et il s'emble qu'il plante lorsque windev veut libérer la mémoire sur le tableau tabencode
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 ImageCodecFlags est une structure sImageCodecFlagsEncoder est une chaîne = &H1 sImageCodecFlagsDecoder est une chaîne = &H2 sImageCodecFlagsSupportBitmap est une chaîne = &H4 sImageCodecFlagsSupportVector est une chaîne = &H8 sImageCodecFlagsSeekableEncode est une chaîne = &H10 sImageCodecFlagsBlockingDecode est une chaîne = &H20 sImageCodecFlagsBuiltin est une chaîne = &H10000 sImageCodecFlagsSystem est une chaîne = &H20000 sImageCodecFlagsUser est une chaîne = &H40000 FIN UUID est une structure Data1 est un entier sur 4 octet Data2 est un entier Data3 est un entier Data4 est un tableau dynamique de 7 entier sur 1 octet FIN ImageCodecInfo est une structure ClassID est un UUID FormatID est un UUID CodecName est un entier sur 4 octet DllName est un entier sur 4 octet FormatDescription est un entier sur 4 octet FilenameExtension est un entier sur 4 octet MimeType est un entier sur 4 octet flags est un ImageCodecFlags Version est un entier sur 4 octet SigCount est un entier sur 4 octet SigSize est un entier sur 4 octet SigPattern est un entier sur 4 octet SigMask est un entier sur 4 octet FIN num, size sont des entiers sur 4 octets status est un entier tabEncode est un tableau dynamique de 1 ImageCodecInfo buffer est un tableau dynamique de 1 entier sans signe sur 1 octet sEncoder est une chaîne UNICODE //Récupère les informations des encodeurs du système status = :GdipGetImageEncodersSize(num, size) Dimension(tabEncode, num) Dimension(buffer, size) API(::GDIP, "GdipGetImageEncoders", num, size, &tabEncode) POUR i=1 _A_ num sEncoder = ChaîneRécupère(tabEncode[i].MimeType, crAdresseUNICODE) SI sEncoder = sOutPUT_FORMAT ALORS RETOUR FIN FIN
Merci de vos réponses
Partager