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

Bibliothèques Discussion :

[GD] problème de création d'image


Sujet :

Bibliothèques

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 98
    Points : 48
    Points
    48
    Par défaut [GD] problème de création d'image
    bonjour, j'ai un petit souci pour conserver une image identique.
    J'utilise la librairie GD afin de récupérer les pixels d'une image que je viens d'ouvrir. Ensuite je créer une nouvelle image que je construis petit à petit en lui passant les pixels récupérés.

    voici 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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    #include "gd.h"
    #include<iostream>
    int main() {
     
        FILE *in;
        gdImagePtr im;
     
        in = fopen("point.jpg", "rb");
        im = gdImageCreateFromJpeg(in);
        fclose(in);
     
        gdImagePtr imResult;
        FILE *jpegout;
     
        int width = gdImageSX(im);
        int height = gdImageSY(im);
        imResult = gdImageCreate(width, height);
     
        // int noir = gdImageColorAllocate(imResult, 0, 0, 0);
        // int blanc = gdImageColorAllocate(imResult, 255, 255, 255);
     
        int c;
        int pixelColor;
        int red, green, blue;
        for(int i = 0; i < width; i++) {
            for(int j = 0; j < height; j++) {
     
                c = gdImageGetPixel(im, i, j);
     
                int red = gdImageRed(im, c);
                int green = gdImageGreen(im, c);
                int blue = gdImageBlue(im, c);
     
     
                // METHODE 1 -----
    /*            // Try to allocate red directly
                pixelColor = gdImageColorExact(imResult, red, green, blue);
                // If red isn't already present...
                if (pixelColor == (-1)) {
                    // Second best: try to allocate it directly.
                    pixelColor = gdImageColorAllocate(imResult, red, green, blue);
                    // Out of colors, so find the closest color instead.
                    pixelColor = gdImageColorClosest(imResult, red, green, blue);
                }
    */
                // METHODE 2 -----
                pixelColor = gdImageColorResolve(imResult, red, green, blue);
     
     
                gdImageSetPixel(imResult, i, j, pixelColor);
            }
        }
     
     
        jpegout = fopen("imageResult.jpg", "wb");
        gdImageJpeg(imResult, jpegout, -1);
        fclose(jpegout);
        gdImageDestroy(imResult);
        gdImageDestroy(im);
     
    }
    Voila, j'ai testé plusieurs petit trucs et là, je me sens un peu démunie devant ce problème.

    Le résultat donne une image dont les couleurs sont différentes (on est dans les mêmes teintes mais c'est différents, plus terne je dirais)

    Quelqu'un pourrait-il m'aider?
    Merci d'avance.

  2. #2
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 98
    Points : 48
    Points
    48
    Par défaut
    Ah ben je crois que j'ai trouvé. Il suffisait de mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    imResult = gdImageCreateTrueColor(width, height);
    à la place de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    imResult = gdImageCreate(width, height);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de création d'image système sur Windows 7
    Par yetman333 dans le forum Windows 7
    Réponses: 16
    Dernier message: 12/12/2014, 17h12
  2. Problème de création de bord de cadre via des images
    Par bilou95 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/04/2007, 11h19
  3. [GD] Problème de création d'image avec GD2
    Par Halex78 dans le forum Bibliothèques et frameworks
    Réponses: 15
    Dernier message: 31/03/2007, 15h46
  4. [ImageMagick] Création de vignette d'image à la volée
    Par falatop dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 31/10/2006, 15h13
  5. Réponses: 1
    Dernier message: 11/07/2006, 20h00

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