Quiero implementar un sistema de capas en mi aplicación y estaba pensando en crear un montón de mapas de bits transparentes, agregarles contenido y luego superponerlos uno encima del otro, ¿cómo puede hacerse esto sin configurar cada píxel (0,0 , 0,0). Estoy usando Pure win32, no MFC, gracias.Creando un mapa de bits transparente con GDI?
Respuesta
¿Qué quieres decir con transparente?
Si está buscando una transparencia parcial (a total), entonces AlphaBlend es la API de GDI que debe usar. La carga de mapas de bits con alfa es complicada: el único formato compatible con la API base de Windows para cargar mapas de bits con alfa es un archivo .BMP de 32bp con un canal alfa en los 8 bits superiores de cada byte, y los bytes inferiores deben multiplicarse previamente.
Es posible usar GDI + para cargar una variedad de formatos de imagen con alfa - PNG es probablemente lo mejor, y blitter en una DIBSection de 32bpp para que pueda usar las funciones GBI AlphaBlend y simple.
Si desea una máscara de transparencia simple en lugar de un canal alfa completo, puede usar TransparentBlt junto con una clave de color para enmascarar las áreas de un mapa de bits al hacer blitting.
GDI no es compatible con la transparencia en mapas de bits y en general. Considere usar GDI+.
- 1. GDI + DrawImage() con mapa de bits transparente en una impresora
- 2. Conversión de mapa de bits: crear un mapa de bits que excluya los lados transparentes del mapa de bits transparente
- 3. Cómo mostrar parte de un mapa de bits transparente
- 4. ¿Crear imagen con fondo transparente usando GDI +?
- 5. ¿Cómo limpiar un mapa de bits?
- 6. Texto antialias en el mapa de bits transparente
- 7. Cómo pintar un área de un mapa de bits con 'blanco transparente'?
- 8. C#: Dibujar un mapa de bits en otro, con transparencia
- 9. ¿Cómo cambiar el color de fondo negro del mapa de bits a transparente?
- 10. Gdiplus :: ¿Mapa de bits a matriz BYTE?
- 11. ¿Cómo convertir el mapa de bits a escala de grises por intensidad de píxel usando GDI?
- 12. android cómo dibujar un mapa de bits sobre lienzo semi transparente
- 13. Cómo renderizar un cursor transparente al mapa de bits preservando el canal alfa?
- 14. Creando un mapa de lambdas en C++
- 15. Creando un degradado lineal transparente a un div
- 16. Android - Rellene mapa de bits con color
- 17. Cargar mapa de bits RGBA con PIL
- 18. Dibujar rectángulo azul ligeramente transparente en Win32 GDI nativo
- 19. C# "El parámetro no es válido". creando un nuevo mapa de bits
- 20. Trabajar con mapa de bits en WPF
- 21. Preservar los valores de mapa de bits al crear un nuevo mapa de bits desde System.Drawing.Image
- 22. Cómo desenfocar un mapa de bits (Android)?
- 23. XSLT: Creando un Mapa en XSLT
- 24. Convirtiendo un mapa de bits a monocromo
- 25. Creando una ventana transparente en C++ Win32
- 26. Rotar un mapa de bits 90 grados
- 27. ¿Cómo dibujar una ruta con un mapa de bits?
- 28. Android: crear un mapa de bits con contenido SurfaceView
- 29. Cómo usar relativelayout.setBackgroundDrawable() con un mapa de bits?
- 30. Transparencia al texto en GDI
Lo sortof hace - tiene soporte para la mezcla transparente de un mapa de bits en otro, utilizando componentes alfa en el mapa de bits a través de AlphaBlend. También existen algunas extensiones para admitir Aero en las ventanas que también podrían contar. Aunque tienes razón sobre el caso general. –
También hay TransparentBlt, pero cuando se utilizan imágenes de 32 bits (por ejemplo, aquellas con transparencia especificada), AlphaBlend es el camino a seguir. – dlanod