2008-09-15 10 views
5

¿Alguien tiene alguna sugerencia sobre cómo dibujar con éxito un mapa de bits que tiene un canal alfa utilizando Graphics :: DrawImage() cuando el contexto de gráficos es creado en una impresora HDC ? Los controladores de impresora generalmente no son compatibles con la mezcla alfa, por lo que existe una alternativa para convertir todo en un mapa de bits fuera de pantalla y simplemente enviarlo a la impresora. Esto a menudo no es factible, especialmente para la impresión de alta resolución en impresoras de gran formato.GDI + DrawImage() con mapa de bits transparente en una impresora

Respuesta

0

Ha intentado dibujar un rectángulo blanco para inicializar la imagen antes de llamar al método DrawImage?

0

El punto es que necesito los gráficos de línea tirados por detrás de la imagen sean visibles. Intenté llenar el rectángulo primero con el color RGBA de (255, 255, 255, 0) pero esto no ayuda. Los píxeles con un valor alfa de cero se imprimen como totalmente transparentes, pero los píxeles parcialmente transparentes se dibujan totalmente opacos.

1

¿Qué tipo de impresora es eso? Las impresoras comunes no imprimen en blanco. Cree una imagen en la memoria y aplánela (elimine el canal alfa) y luego imprima el resultado.

0

Gracias por hacer esta pregunta porque yo estaba pensando en tal vez tratando de utilizar GDIPlus para ver si podía conseguirme alrededor de los problemas que enfrenta Todavía estoy consiguiendo formas de diamante con dibujos para imprimir correctamente. Aunque hoy en día parece que la mezcla alfa funciona en la mayoría de las impresoras, todavía hay algunas que dibujan esquinas negras en los diamantes.

Aparte de la mezcla alfa, también he intentado utilizar regiones de clip en forma de diamante para rodear la forma, pero normalmente las impresoras que no admiten mezcla alfa no parecen ser compatibles con las regiones de clip poligonales. He intentado copiar de la impresora-CC en un mapa de bits que el principal punto antes de sacar el diamante en la parte superior, con la esperanza de que esto permitirá que ponga de vuelta (en las esquinas) lo que había antes. Esto tampoco funciona porque parece que el problema se reduce al hecho de que el controlador de la impresora no sabe realmente qué se está imprimiendo en qué parte de la página.

En mi caso, mi próximo plan es intentar usar un cepillo grande de mapa de bits para dibujar el diamante llenar directamente a la impresora HDC. Sospecho que existe una posibilidad moderada de que esto también falle para ciertas impresoras. Parece que no es una opción para lo que estabas haciendo.

Cuestiones relacionadas