begin process at 2012 02 05 05:18:01
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > CONVERSION BMP <-> JPEG AVEC LIBRAIRIE CXIMAGE

CONVERSION BMP <-> JPEG AVEC LIBRAIRIE CXIMAGE


 Information sur la source

Note :
7,43 / 10 - par 7 personnes
7,43 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Niveau :Débutant Date de création :12/05/2004 Vu / téléchargé :17 085 / 2 582

Auteur : Xentor609

Ecrire un message privé
Site perso
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note

 Description

Après plusieurs demandes, j'ai décidé de poster cette source.
Le but est de convertir une image de format bitmap en jpeg et vice-versa. Après plusieurs recherches sur internet, j'ai trouvé finalement une librairie, CxImage, qui permet d'une part cette conversion (et pleins d'autres fonctions) et d'autre part qui est "compatible" pour les applications API. Cette source n'est en fait qu'un petit allégement de cette librairie.

Source

  • #include <windows.h>
  • #pragma comment(lib,"CxImage.lib")
  • #pragma comment(lib,"jpeg.lib")
  • #include "ximage.h"
  • int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
  • {
  • CxImage image;
  • // bmp -> jpg
  • image.Load("C:\\image.bmp", CXIMAGE_FORMAT_BMP);
  • if (image.IsValid())
  • {
  • if(!image.IsGrayScale()) image.IncreaseBpp(24);
  • image.SetJpegQuality(70);
  • image.Save("C:\\image.jpg",CXIMAGE_FORMAT_JPG);
  • }
  • // jpg -> bmp
  • image.Load("C:\\image.jpg", CXIMAGE_FORMAT_JPG);
  • if (image.IsValid())
  • {
  • if(!image.IsGrayScale()) image.IncreaseBpp(24);
  • image.Save("C:\\image2.bmp",CXIMAGE_FORMAT_BMP);
  • }
  • // redimensionner + bmp -> jpg
  • image.Load("C:\\image.bmp", CXIMAGE_FORMAT_BMP);
  • if (image.IsValid())
  • {
  • image.Resample(1024/2,768/2,1,0);
  • image.Save("C:\\imagesize.jpg",CXIMAGE_FORMAT_JPG);
  • }
  • return 0;
  • }
#include <windows.h>

#pragma comment(lib,"CxImage.lib")
#pragma comment(lib,"jpeg.lib")
#include "ximage.h"

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
{
	CxImage image;

	// bmp -> jpg
	image.Load("C:\\image.bmp", CXIMAGE_FORMAT_BMP);
	if (image.IsValid())
	{
		if(!image.IsGrayScale()) image.IncreaseBpp(24);
		image.SetJpegQuality(70);
		image.Save("C:\\image.jpg",CXIMAGE_FORMAT_JPG);
	}

	// jpg -> bmp
	image.Load("C:\\image.jpg", CXIMAGE_FORMAT_JPG);
	if (image.IsValid())
	{
		if(!image.IsGrayScale()) image.IncreaseBpp(24);
		image.Save("C:\\image2.bmp",CXIMAGE_FORMAT_BMP);
	}

	// redimensionner + bmp -> jpg
	image.Load("C:\\image.bmp", CXIMAGE_FORMAT_BMP);
	if (image.IsValid())
	{
		image.Resample(1024/2,768/2,1,0);
		image.Save("C:\\imagesize.jpg",CXIMAGE_FORMAT_JPG);
	}

	return 0;
}

 Conclusion

Le code montre juste la méthode de conversion entre bitmap et jpeg et aussi un redimensionnement. Pour tester, prenez une image au format bitmap, mettez la à la racine C avec comme nom "image.bmp".
Pour ceux qui sont intéressés par les autres fonctions de cette librairie, je vous conseille de jeter un coup d'oeil à cette adresse : http://www.codeproject.com/bitmap/cximage.asp
Vou s aurez la librairie complète avec en prime une demo executable qui montre la puissance de celle-ci (c'est en MFC mais le programme est très impressionnant, loin d'être un simple Paint, plutôt au niveau de Paint Shop Pro).
N'hésitez pas à me faire part de vos suggestions ;-)
xentor_609@hotmail.com ou phoenix_darkspirit@hotmail.com

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture CONTROLE D'UN PC A DISTANCE AVEC UNE TELECOMMANDE INFRAROUGE...
Source avec Zip Source avec une capture WINDOW CONTROL
Source avec Zip Source avec une capture TASKMANAGER
Source avec Zip Source avec une capture DECRYPTEUR DE FICHIER GKF
Source avec Zip Source avec une capture MSGBOX

 Sources de la même categorie

Source avec Zip APPLICATION DE DESSIN DE QUELQUES FIGURES par laguchori
Source avec Zip Source avec une capture HDR EXPOSURE FUSION par mecrosoft
Source avec Zip Source avec une capture IRC CLIENT MULTISERVEUR EN MFC (TXIRC) par TeniX
Source avec Zip ENTETE DU FICHIER BMP (BIPMAP) par k.Lutchi
Source avec Zip Source avec une capture XCOUPE : COUPE 2D par pop70

Commentaires et avis

Commentaire de juki_webmaster le 13/05/2004 16:16:22

C'est exelent !

Commentaire de betaxx le 16/05/2004 22:50:07

merci pour ta source xentor609 ,le prog il marche nickel,
j'ai installe cximage avec visual c++, j'ai fait un ptit prog ca transforme l' image.bmp en image.jpeg
mais le probleme c'est que la taille du jpeg et bmp sont identiques (pas de compression)
comment faire pour compresser l'image ? (as'tu modifier lesfichiers .h de cximage?)
voici mon code source :



#include "stdafx.h"
#include "windows.h"
#include "ximage.h"

#define CXIMAGE_FORMAT_JPG 1

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)

{

CxImage  image;
// bmp -&gt; jpg
image.Load("c:\\image.bmp", CXIMAGE_FORMAT_BMP);

if (image.IsValid())

{

    if(!image.IsGrayScale())
{
    image.IncreaseBpp(24);
    image.SetJpegQuality(99);
    image.Save("c:\\image.jpg",CXIMAGE_FORMAT_JPG);
}

}

return 0;
}

Commentaire de Xentor609 le 17/05/2004 19:21:46

salut, betaxx!
Le problème vient simplement du fait que tu ais rajouté cette ligne :
#define CXIMAGE_FORMAT_JPG 1
Enlève là et tu verras, ca devrait normalement convertir sans problème!
Tu n'as pas besoin de définir quoique ce soit, et c'est là tout l'interêt!
Il te suffit que les 2 librairies (jpeg et CxImage) soient inclues dans ton projet et aussi ximage.h et après tu peux utiliser les fonctions sans problème.
Bye,Xentor609!

Commentaire de betaxx le 17/05/2004 22:32:38

salut xentor609,
merci pour ta reponse, j'ai fait comme t'as dit ,j'ai enlevé #define CXIMAGE_FORMAT_JPG 1  et il me met une erreur :

error C2065: 'CXIMAGE_FORMAT_JPG' : undeclared identifier

j'ai meme mis #include "ximajpg.h" (car il m'a fait une erreur de link...)
et cximage et jpeg sont bien inclues dans mon projet.
donc voila, je crois que je n'suis pas loin....

@+

Commentaire de Xentor609 le 18/05/2004 20:42:28

salut,
C'est vraiment bizarre ! Et sur la source que j'ai postée, quand tu la compiles, tu as les même erreurs ?
Le mieux, je pense, c'est que tu m'envoies ton code source pour que je regarde ça de plus près (envoie moi aussi les workspaces et tout ce qui va avec).
Une petite remarque, tu mets #include "windows.h", ca ne serait pas plutot #include &lt;windows.h&gt; ? Enfin je suis pas sur mé ?
Bye,Xentor609

Commentaire de betaxx le 19/05/2004 18:16:04

salut,
j'ai pris tes fichiers (ximage.h,xmemfile.h,jpeg.lib cximage.lib.....) et je les ai inclu dans mon projet et là ca a marché!!
au fait le probleme c'est qu'avant de compiler cximage il fallait ouvrir ximage.h et modifier   #define CXIMAGE_SUPPORT_JPG 0      par
#define CXIMAGE_SUPPORT_JPG 1
j'ai vu ca en comparant tes fichiers avec ceux que j'ai telechargé.
donc voila , mon prog marche nickel!!
encore merci a toi.
@+

Commentaire de metalpets le 14/08/2004 15:31:21

je ne comprend pa je n arrive pa a compiler le programme avec devcpp il me dit :
Linker error undefined ref to cximage::load
idem pour save etc....




et en C c faisable?

Commentaire de metalpets le 14/08/2004 15:32:43

ps pourtant j ai bien ajouter les 2 .lib pour l editeur de liens..

Commentaire de Xentor609 le 16/08/2004 23:29:36

salut!
Je n'ai jamais utilisé devcpp. Donc il m'est impossible de voir le problème de mes "propres yeux". Essaye de poster sur le forum, en espèrant que quelqu'un de plus expérimenté que moi avec ce compilateur pourra t'aider. De plus, je suis de moins en moins libre en ce moment (en plein déménagement).
Je suis vraiment désolé de ne pas pouvoir t'aider.
Si t'as d'autres questions, j'essayerais d'y répondre, dans la limite de mes possibilités.
Bye, Xentor609 !

Commentaire de polokab le 28/04/2005 10:55:39

Salut Xentor,
J'ai tout compilé sous Borland C++ 5 et j'obtient le message suivant:
Fatal:  Fatal: Bad object file 'C:\Program Files\BC5\LIB\jpeg.lib' near file offset 0
Est ce que tu sais d'où ca peut venir ?
Merci d'avance.

Commentaire de Plastic le 26/02/2006 23:27:50

Bonjour,

Est ce qu'en modifiant quelque peu ce code il est possible d'obtenir à partir d'une image jpeg une image bmp codée sur 1 bit(noir et blanc)?

Dans tous les cas merci pour ce code qui m'est deja grandement utile...

Commentaire de nashnash le 02/07/2006 14:10:12

Les bibliothèques CxImage semblent hélas complètement incompatibles avec BCB6. Dommage...

Commentaire de pipocodesrc le 20/03/2008 11:22:32

Salut à tous, j'ai compilé le tout sous borland c++ 5.02 (sous bcb..aussi)  sans soucis en quelques heures. Il faut prendre le temps de ramener toutes les librairies indiquées et de les compiler 1 à une -> fastidieux.
voilà, si je peux aider qq1.

par contre j'aimerai bien faire passer une image de RGB -> BW sans passer par les niveaux de gris any ideas.. ? et la doc décrit les fonctions sans les expliquer.. Passer un filtre ? bon je vais qd même regarder de + prés tout ce code/doc
Yo

Commentaire de pipocodesrc le 20/03/2008 11:29:30

Salut à tous, j'ai compilé le tout sous borland c++ 5.02 (sous bcb..aussi)  sans soucis en quelques heures. Il faut prendre le temps de ramener toutes les librairies indiquées et de les compiler 1 à une -> fastidieux.
voilà, si je peux aider qq1.

par contre j'aimerai bien faire passer une image de RGB -> BW sans passer par les niveaux de gris any ideas.. ? et la doc décrit les fonctions sans les expliquer.. Passer un filtre ? bon je vais qd même regarder de + prés tout ce code/doc
Yo

Commentaire de kertimanoff le 11/07/2010 21:33:33 10/10

Merci beaucoup pour ce code

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 7,566 sec (3)

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