2010-11-15 18 views
5

Tengo una aplicación de escritorio pura C++/Win32 VS2005. Durante mi respuesta WM_PAINT, cuando pinto mi ventana, me gustaría poder proyectar una imagen PNG transparente en mi ventana.Archivo PNG transparente en una aplicación Pure C++/Win32

cualquier puntero será apreciado.

+0

¿Ha buscado en Google algo como "Biblioteca de Windows PNG" y ha mirado los resultados? Si es así, ¿qué problemas viste qué apareció? –

+0

@JerryCoffin Solo, para tu información, esta publicación es ahora el principal resultado de Google para "paint png winapi", de hecho, los cuatro primeros son ahora todos. – jrh

Respuesta

3

GdiPlus ha sido parte de Windows desde Windows XP a menos, y puede decodificar archivos JPEG, PNG y GIF con facilidad.

Una API más nueva para tratar con archivos de imagen es Windows Image Component. Una de las cubiertas samples usa WIC para decodificar una imagen y GdiPlus para realizar la pintura alpha aware.

2

El componente de imágenes de Windows (WIC) es la API principal para el código nativo que proporciona la capacidad de codificar y decodificar varios formatos de imagen. Puede usarlo para cargar una imagen PNG en su aplicación.

http://msdn.microsoft.com/library/ee719902

Alternativamente, puede utilizar GDI +, pero eso es la tecnología bastante viejo y no funciona tan bien. También puede usar GDI + para representar la imagen, pero sugiero Direct2D.

Direct2D es capaz de representar un mapa de bits WIC directamente en la GPU o en el software a través de una ventana o contexto de dispositivo de mapa de bits.

He aquí un artículo introductorio sobre Direct2D:

http://msdn.microsoft.com/en-ca/magazine/dd861344.aspx

Y éste describe cómo utilizar Direct2D con WIC:

http://msdn.microsoft.com/en-us/magazine/ee819134.aspx

+0

Creo que WIC requiere un mínimo de Vista en una máquina de destino. Las restricciones locales aquí me obligan a soportar XP y escribir código en VS2005. ¿Seguirá siendo WIC una buena opción dadas estas limitaciones? – JasonGenX

+0

WIC está disponible para Windows XP con SP2 y posterior. –

Cuestiones relacionadas