Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: W0lFy en 26 Enero 2011, 02:22 am



Título: Duda C++ JPEG
Publicado por: W0lFy en 26 Enero 2011, 02:22 am
Buenas , alguien me puede decir como puedo insertar en un control STATIC una imagen .jpg?  lo hago asi con bmp:

Código
  1. HWND imagen;
  2.       barrita = CreateWindowEx(
  3.       0,
  4.      "STATIC",        /* Nombre de la clase */
  5.      "imagen",         /* Texto del título */
  6.      WS_CHILD|WS_VISIBLE|SS_BITMAP,
  7.      0,0 ,           /* Posición */
  8.      100,100,          /* Tamaño */
  9.      hwnd,            /* Ventana padre */
  10.      NULL, /* Identificador del control */
  11.      hThisInstance,       /* Instancia */
  12.      NULL);           /* Sin datos de creación de ventana */
  13.  
  14.      SendMessage(barrita, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)LoadImage(NULL, "img\\Cubo0.bmp", IMAGE_BITMAP,
  15.              0, 0, LR_LOADFROMFILE));


como puedo hacerlo para JPG o cualquier formato? Gracias un saludo!


Título: Re: Duda C++ JPEG
Publicado por: BlackZeroX en 26 Enero 2011, 03:27 am
.
Una alternativa es con las APIS GDIPLUS para obtener el HBITMAP y asi establecerla.

Dulces Lunas!¡.
.


Título: Re: Duda C++ JPEG
Publicado por: W0lFy en 27 Enero 2011, 10:45 am
La verdad es que nunca he tratado con esta librería... Donde puedo encontrar documentación sobre ella? he estado mirando por google, he conseguido descargarla y la puedo cargar en mi proyecto con:

hLib = LoadLibrary("gdiplus.dll");


El problema es que según he leido esta libreria tiene funciones para convertir jpg en bmp e incluso reducirlo de tamaño, como podría usar estas funciones o saber como se llaman o importarlas de alguna manera? Nunca me he metido con dll. la verdad es que estoy intentando hacer esto para meterlo en un formulario, una foto que es de 512X512 pero quiero reducirla para que entre en el formulario. Un saludo y perdonad las molestias :)


Título: Re: Duda C++ JPEG
Publicado por: BlackZeroX en 27 Enero 2011, 11:06 am
.
MSDN M$ ( WINAPI ), desconozco si existe para linux.

Son Apis asi que no tienes por que usar LoadLibrary

Dulces lunas.


Título: Re: Duda C++ JPEG
Publicado por: W0lFy en 28 Enero 2011, 00:09 am
He encontrado esto
http://msdn.microsoft.com/en-us/library/ms535370(v=VS.85).aspx

No consigo comprender como funciona gdiplus en winapi, intento usar alguna de sus funciones y no las reconoce, tengo que hacer algo antes?( Es como si tuviera que meter el header de <gdiplus.h>, pero si lo meto no reconoce donde está el archivo....). Estoy programando en windows XP con dev c++. Siento molestarte tanto, pero necesito un pequeño empujon... :)


Título: Re: Duda C++ JPEG
Publicado por: W0lFy en 28 Enero 2011, 03:05 am
OK ya he conseguido poder utilizar esta libreria... Ahora ya tengo mi foto JPG en un BMP en disco y logro con el sendMessage pasarselo al HBITMAP, ahora el problema es que la imagen es muy grande, existe alguna manera de reducir el tamaño de  la imagen para que quede curiosa en el formulario? Perdonad las molestias....