Alguien sabe usar la clase Cximage??

Iniciado por Ferсhu, 24 Julio 2007, 23:28 PM

0 Miembros y 1 Visitante están viendo este tema.

Ferсhu

Alguien sabe usar Cximage para convertir bmp a jpg? tengo el codigo pero no me reconoce la clase, por lo cual no anda y nose por q.


#include <windows.h>
#include "ximage.h"
#include "stdafx.h"
#pragma comment(lib,"CxImage.lib")
#pragma comment(lib,"jpeg.lib")


int main()
{
CxImage image;

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

// jpg -> bmp

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


}
// redimensionner + bmp -> jpg

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

return 1;
}




Errores:
Citar--------------------Configuration: convertir - Win32 Debug--------------------
Compiling...
convertir.cpp
D:\visual\convertir\convertir.cpp(12) : error C2065: 'CxImage' : undeclared identifier
D:\visual\convertir\convertir.cpp(12) : error C2146: syntax error : missing ';' before identifier 'image'
D:\visual\convertir\convertir.cpp(12) : error C2065: 'image' : undeclared identifier
D:\visual\convertir\convertir.cpp(15) : error C2228: left of '.Load' must have class/struct/union type
D:\visual\convertir\convertir.cpp(15) : error C2065: 'CXIMAGE_FORMAT_BMP' : undeclared identifier
D:\visual\convertir\convertir.cpp(16) : error C2228: left of '.IsValid' must have class/struct/union type
D:\visual\convertir\convertir.cpp(18) : error C2228: left of '.IsGrayScale' must have class/struct/union type
D:\visual\convertir\convertir.cpp(18) : error C2228: left of '.IncreaseBpp' must have class/struct/union type
D:\visual\convertir\convertir.cpp(19) : error C2228: left of '.SetJpegQuality' must have class/struct/union type
D:\visual\convertir\convertir.cpp(20) : error C2228: left of '.Save' must have class/struct/union type
D:\visual\convertir\convertir.cpp(20) : error C2065: 'CXIMAGE_FORMAT_JPG' : undeclared identifier
D:\visual\convertir\convertir.cpp(25) : error C2228: left of '.Load' must have class/struct/union type
D:\visual\convertir\convertir.cpp(26) : error C2228: left of '.IsValid' must have class/struct/union type
D:\visual\convertir\convertir.cpp(28) : error C2228: left of '.IsGrayScale' must have class/struct/union type
D:\visual\convertir\convertir.cpp(28) : error C2228: left of '.IncreaseBpp' must have class/struct/union type
D:\visual\convertir\convertir.cpp(29) : error C2228: left of '.Save' must have class/struct/union type
D:\visual\convertir\convertir.cpp(34) : error C2228: left of '.Load' must have class/struct/union type
D:\visual\convertir\convertir.cpp(35) : error C2228: left of '.IsValid' must have class/struct/union type
D:\visual\convertir\convertir.cpp(37) : error C2228: left of '.Resample' must have class/struct/union type
D:\visual\convertir\convertir.cpp(38) : error C2228: left of '.Save' must have class/struct/union type
Error executing cl.exe.

convertir.exe - 20 error(s), 0 warning(s)

lo q me pasa es obvio, no encuentra la clase 'CxImage' , pero yo baje el codigo de Cximage, lo compile con visual c++ 6, cree el .lib, incluia todas las funciones q aparecen ahi, lo puse en la carpeta y lo linkie, con el jpeg.lib lo mismo hice, pero no anda y no se q pasa.

y con dev-c++ creo q no se puede linkear a un .lib no? solo a un .a? alguien me lo puede confirmar.

‭‭‭‭jackl007

Hola, perdon por revivir el post, pero tengo el mismo problema, así que mejor que todo quede archivado en un mismo sitio para que pueda ayudar a más gente cuando lo googlee.

Me he bajado el código para convertir de BMP a JPG de: http://codes-sources.commentcamarche.net/source/22754-conversion-bmp-jpeg-avec-librairie-cximage

He agregado al DevC++ las librerias CxImage.lib, jpeg.lib (las obtuve ya compiladas), Y obtengo los mismos errores del linker.


Es como si no encontrase las funciones dentro de las librerías, porque si las quito y vuelvo a compilar/linkear, da el mismo error, osea cómo si no se tuvieran en cuenta para nada.

He buscado en foros, y varias personas tienen el mismo inconveniente, y no lo consigue resolver. En teoría, agregando las librerías, el linker encuentra las funciones que se utilizan en el código, y crea el ejecutable, pero no sucede así.

Alguien logró resolverlo?

Saludos y gracias.

Karman

hola, si solo te interesa convertir a jpg, te recomiendo la lib jpeg-compressor, es la que uso hace un tiempo, ahora si también quieres convertir a otros formatos, fijate el soporte de cximage.

S2