begin process at 2012 05 30 10:33:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

utilisation libjpeg


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

utilisation libjpeg

mercredi 3 août 2005 à 11:36:47 | utilisation libjpeg

fafa21081974

Membre Club
Bonjour tout le monde


J'ai téléchargé la librairie du groupe JPeg qui permet au vu de ce que j'ai vu sur les forums de manipuler des fichiers jpeg. Mais le site ijp.com qui aurait pu me donner plus d'explications n'est pas accessible.

Aussi j'aurai aimé savoir si l'un ou l'une d'entre vous pourrait me guider pour in staller la librairie et comment l'utiliser sachant que je voudrais lire la valeur des pixels


Merci pour votre aide

Fafa_Bouillé
mercredi 3 août 2005 à 16:11:49 | Re : utilisation libjpeg

meech

Membre Club

Salut,

Un bour de code vite fait, car je n'ai pas trop le temps... En résumé, il ouvre le fichier jpeg, donne largeur et hauteur et affiche la valeur de la couleur de chacun des pixels sous forme hexadécimal (genre comme en HTML).

Codé en C, testé sous GNU/Linux Debian (Sarge) 3.1, compilé avec gcc 3.3.5 et libjpeg version 6.2. Sans aucun doute facilement portable sur du Win32 au besoin (il existe un portage de la libjpeg).

J'essaierais, si possible, de poser une vraie source à ce sujet prochainement.

#include <stdio.h>
#include <jpeglib.h>
#include <jerror.h>

int main(int argc, char** argv)
{
  unsigned char *image;
  struct jpeg_decompress_struct cinfo;
  struct jpeg_error_mgr jerr;
  FILE *file; // descripteur de fichier.
  unsigned char *ligne;
  int i,j; // utilisées lors des boucles.
  int width, height; // largeur & hauteur de l'image

  if (argc < 2)
  {
    fprintf(stderr, "Usage : %s fichier.jpg\n\n", argv[0]);
    exit(2);
  }

  cinfo.err = jpeg_std_error(&jerr);
  jpeg_create_decompress(&cinfo);
  if ((file=fopen(argv[1],"rb"))==NULL)
    {
      fprintf(stderr, "Echec lors de l'ouverture du fichier '%s'\n", argv[1]);
      exit(1);
    }
  jpeg_stdio_src(&cinfo, file);
  jpeg_read_header(&cinfo, TRUE);

  // obtention des dimensions de l'image.
  width = cinfo.image_width;
  height = cinfo.image_height;

  // allocation de mémoire pour le stockage des pixels en mémoire.
  image = (char*)malloc(width * height * sizeof(unsigned int));

  jpeg_start_decompress(&cinfo);
  ligne=image;
  while (cinfo.output_scanline<cinfo.output_height)
    {
      ligne=image+3*width*cinfo.output_scanline;
      jpeg_read_scanlines(&cinfo,&ligne,1);
    }
  jpeg_finish_decompress(&cinfo);
  jpeg_destroy_decompress(&cinfo);

  fprintf(stdout, "largeur x hauteur = %dx%d\n\n", width, height);
 
  // passe dans chaque colonne de pixels (...)
  for (i=0;i<cinfo.image_width;i++)
    // (...) puis par ligne
    for (j=0;j<cinfo.image_height;j++)
    {
      // on récupère les valeurs des couleurs RVB (...)
      int color_r = image[i*256*3+j*3];
      int color_v = image[i*256*3+j*3+1];
      int color_b = image[i*256*3+j*3+2];
      // enfin, affichage style des couleurs style html.
      printf("RVB= #%02x%02x%02x\n", color_r, color_v, color_b);
    }
}


Compilation : gcc -o testjpg -c testjpg.c -ljpeg
Utilisation : ./testjpg fichier.jpg

Sûrement existe-il quelques bugs... mais, en espérant t'avoir aidé un peu...
Ciao.


mercredi 3 août 2005 à 16:31:57 | Re : utilisation libjpeg

fafa21081974

Membre Club

Merci meech.

j'ai lu ton code et je vais essayer de l'adapter. je pense que cela devrait pas mal m'aider car ca correspond quasi à ce qur je voulais. mais juste une petite question de néophyte que je suis car je démarre en programmation

à quoi sert exactement la ligne

if (argc < 2)
  {
    fprintf(stderr, "Usage : %s fichier.jpg\n\n", argv[0]);
    exit(2);
  }


C'est vraiment sympa.



Fafa_Bouillé
mercredi 3 août 2005 à 16:48:51 | Re : utilisation libjpeg

meech

Membre Club
A pas grand chose : juste à regarder s'il y a deux paramètres passés à la ligne de commande :
1. Le premier est toujours le nom du programme (et peut-être son chemin complet, je ne sais plus...)
2. Le second, et dans ce code, en particulier, est utilisé pour spécifier le nom du fichier JPEG à ouvrir. Si ce nom n'est pas fourni, alors l'application se ferme car elle n'a pas de fichier à ouvrir.

Bon courage et à plus tard.



Cette discussion est classée dans : utilisation, jpeg, librairie, libjpeg


Répondre à ce message

Sujets en rapport avec ce message

utilisation de librairie [ par Sade ] je posséde une libraire écrite en C++, permettant d'accéder à une mémoire réfléchie. Je désiré utiliser cette bibliothèque dans un programme C ("plus librairie jpeg-6b sous Dev C++. [ par tintin72 ] Bonjour,J'aimerai savoir comment faire pour installer et configurer la librairie jpeg-6b sous Dev C++.Bien sûr j'ai lu les explications mais c'est pas libjpeg glut et DevC++ [ par EvilSeiya ] Bonsoir à tous, Voilà je débute dans la programmation open gl et c'est dans le cadre d'un projet que j'ai décidé de m'intéresser à l'open gl. J'ai don librairie jpeg? [ par vangeurmasker ] bonjour Je suis a la recherche d'une librairie permetant d'enregister des images jpeg. J'aimerait pouvoir choisir le taut de compression et le nombre Utilisation de la librairie PortAudio [ par gaetanpouly ] Bonjour, J utilise actuellement cette biblio pour faire de l acqui temps reel suivi de traitement. Seulement je suis face a un pb lors de l acqui en inclure la librairie jpeg !!!! [ par gege1024 ] tout d'abord, où trouve t'on cette librairie (site officiel) ?- qq'un pourait'il expliquer pas à pas l'integration de cette librairie sous vc++6( ajou utilisation SDL Sprite [ par peter1789 ] Bonjour à tous,Je débute dans le language C et je voudrais savoir comment utiliser la librairie "SpriteWorldX" (extension de SDL) et s'il existe des t cherche lien libjpeg et utilisation. [ par gege1024 ] en fait, je cheche un lien direct pour telecharger cette lib + qq conseil d'installation.la recherche web me donne trop de choix et je ne sais pas quo Utilisation d'une librairie statique développée en C++ dans du code en C [ par oh81 ] Bonjour,   est-il possible de utiliser une librairie statique développée en C++ dans un programme dévloppé en C?   J'utilise Visual C++ comme environe Utilisation de la librairie FMOD Ex [ par AhZn1 ] Bonjour,Je chercher à réaliser un outil de test automatique et mon problème est le suivant. J'arrive à enregistrer de l'audio à partir de l'entrée mic


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,250 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales