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, systèmes et outils C Discussion :

problème de compression dans un buffer avec libjpeg


Sujet :

Bibliothèques, systèmes et outils C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 26
    Points
    26
    Par défaut problème de compression dans un buffer avec libjpeg
    Bonjour,

    j'ai un petit problème avec l'utilisation de la libjpeg pour compresser une buffer rgb en "brute" dans un autre buffer.

    j'utilise le code est le suivant:

    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
     
    GLOBAL(void)
    write_JPEG_buffer (unsigned char *dest, unsigned char *src, int image_width, int image_height, int quality)
    {
            struct jpeg_compress_struct cinfo;
            struct jpeg_error_mgr jerr;
    	JSAMPROW row_pointer[1];	
    	int row_stride;				
    	unsigned long size;
     
    	cinfo.err = jpeg_std_error(&jerr);
    	jpeg_create_compress(&cinfo);
     
    	size = image_width * image_height * 3;
     
    	jpeg_mem_dest(&cinfo, &dest, &size);
     
    	cinfo.image_width = image_width; 	
    	cinfo.image_height = image_height;
    	cinfo.input_components = 3;			
    	cinfo.in_color_space = JCS_RGB; 
     
    	jpeg_set_defaults(&cinfo);
     
    	jpeg_set_quality(&cinfo, quality, TRUE );
     
    	jpeg_start_compress(&cinfo, TRUE);
     
    	row_stride = image_width * 3;
     
    	while (cinfo.next_scanline < cinfo.image_height) 
    	{
    		row_pointer[0] = &src[cinfo.next_scanline * row_stride];
    		(void) jpeg_write_scanlines(&cinfo, row_pointer, 1);
    	}
     
    	jpeg_finish_compress(&cinfo);
     
    	jpeg_destroy_compress(&cinfo);
     
    }
    le problème et que lorsque j'écris le résultat dans un buffer, la taille de l'image jpg résultat est identique à la taille du fichier non compressé.

    Quelqu'un aurait une idée?

    merci d'avance

  2. #2
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 26
    Points
    26
    Par défaut
    Trouvé.

    Le buffer dest que je passais était prévu plus grand au cas ou et je copiais tout le buffer dans le fichier donc il y avait plein de données inutiles ne faisant pas partie du jpeg.

    Désolés pour le monologue

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/08/2008, 12h17
  2. problème de dessin dans une JApplet avec GridBagLayout
    Par esperal dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 26/05/2008, 09h46
  3. Problème d'espaces dans les chemins avec Cygwin
    Par destructive dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 14/04/2008, 17h48
  4. Réponses: 2
    Dernier message: 23/06/2007, 14h54
  5. Problème de requête dans une boucle avec ADOQuery
    Par Ekik dans le forum Bases de données
    Réponses: 8
    Dernier message: 14/05/2007, 16h07

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