IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Utiliser l'api GDi+ pour réduire la taille d'une image


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Utiliser l'api GDi+ pour réduire la taille d'une image
    Bonjour,

    je souhaite utilisrer l'api GDi+ pour réduire la taille d'une image

    je me heurte à la méthode GdipGetImageEncoders

    mon 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
    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
    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

    Merci de vos réponses

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    444
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 444
    Points : 428
    Points
    428
    Par défaut
    Tu utilises "chargeDLL" pour charger la gdi+ ?
    Mieux vaut un petit lien qu'un long discours.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    C'est bon j'ai trouvé j'avais mal déclaré ma structure.

    La bonne déclaration est :

    GUID est une structure
    Data1 est un entier sur 4 octets
    Data2 est un entier sur 2 octets
    Data3 est un entier sur 2 octets
    Data4 est un tableau fixe de 8 entiers sans signe sur 1 octet
    FIN

    CONSTANTE
    sImageCodecFlagsEncoder = 0x00000001
    sImageCodecFlagsDecoder = 0x00000002
    sImageCodecFlagsSupportBitmap = 0x00000004
    sImageCodecFlagsSupportVector = 0x00000008
    sImageCodecFlagsSeekableEncode = 0x00000010
    sImageCodecFlagsBlockingDecode = 0x00000020
    sImageCodecFlagsBuiltin = 0x00010000
    sImageCodecFlagsSystem = 0x00020000
    sImageCodecFlagsUser = 0x00040000
    FIN

    ImageCodecInfo est une structure
    ClassID est un GUID
    FormatID est un GUID
    CodecName est une chaîne UNICODE
    DllName est une chaîne UNICODE
    FormatDescription est une chaîne UNICODE
    FilenameExtension est une chaîne UNICODE
    MimeType est une chaîne UNICODE
    flags est un entier sur 4 octet
    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

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    444
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 444
    Points : 428
    Points
    428
    Par défaut
    Ah bah oui, j'avais mal vu. Ça se voit au premier coup d'œil pourtant
    Mieux vaut un petit lien qu'un long discours.

Discussions similaires

  1. Transformation pour limiter la taille d'une image
    Par flamant dans le forum Graphisme
    Réponses: 1
    Dernier message: 19/01/2015, 08h39
  2. Possibilités pour réduir la taille d'une BDD
    Par farenheiit dans le forum Administration
    Réponses: 6
    Dernier message: 04/06/2009, 16h50
  3. réduire la taille d'une image gif non animé
    Par simodsio dans le forum Imagerie
    Réponses: 1
    Dernier message: 25/02/2009, 02h27
  4. programme pour réduire la résolution d'une image
    Par khokho dans le forum Multimédia
    Réponses: 6
    Dernier message: 16/11/2006, 19h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo