![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#5
|
||||
|
||||
|
Edito mi post puesto que he visto tarde la imagen que adjuntas, vamos por partes;
Tienes un formulario con las siguientes propiedades;
Con ello tienes un formulario con regiones nulas (transparentes), internamente la API SetLayeredWindowAttributes le dice el SO que debe reconoce al color clFuchsia ($FF00FF) como máscara para dicho efecto, cada region (~pixel) que sea IGUAL a dicho valor exacto será automáticamente "anulado". Ahora tienes una imagen PNG que contiene un "Alpha channel" (especificación 2.4), que indica un valor de transparencia por "pixel", dicho valor puede ser de 0 a N donde 0 significa que el pixel será completamente transparente ("hueco") y mediante vaya siendo un valor mayor hacia N será un color mas "fuerte". Esto funciona de la misma forma que la propiedad AlphaBlendValue en un formulario normal. La imagen que estas utilizando, no solo tiene valores Alpha = 0 (que indica total transparencia), sino que también tiene alrededor de la imagen valores de transparencia parciales (ejemplo). Para ser más directos; cada pixel (en cualquier proceso de opacidad) es promediado con el color de fondo, ósea que para cada R, G y B: Código:
x = ((x1 / MAX(x)) * ((Alpha / MAX(Alpha)) * MAX(x)) + x2) / 2 Donde: x = Resultado x1 = R, G o B del pixel de la imagen x2 = R, G o B del pixel de fondo Alpha = valor "Alpha channel" MAX(x) = valor maximo de x MAX(Alpha) = valor máximo de Alpha Lo que tu quieres es algo que todavía no he visto en ningúna aplicación y es un formulario normal SOLO en la parte de la imagen que no usa Alpha channel, opaco SOLO en las partes de la imagen que usan Alpha channel y transparente en el resto. Lo puedes realizar incrustando un formulario dentro de otro y dividiendo por secciones la imagen, eliminando cualquier Alpha channel que sea parcial, o usando un color de transparencia para la imagen gris. No quise haberte aburrido con la explicacion, pero notarás que era necesaria. Saludos Última edición por cHackAll fecha: 16-09-2008 a las 02:06:02. Razón: Corrijo la información |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| como puedo asociar un form a otro form? | jasz | OOP | 1 | 28-11-2007 00:12:09 |
| Como llamar form desde otros form y regresar a la linea que se estaba ejecutando | Willy Rodrigo | C++ Builder | 1 | 03-08-2007 19:36:23 |
| Form modal deja que el form llamante tome el foco | tata | Varios | 6 | 17-05-2006 11:51:37 |
| Imposible hacer visible un form desde otro form | SMTZ | .NET | 13 | 16-01-2006 21:41:08 |
| Llamar una form desde otra form!!! | niogon | Varios | 2 | 30-09-2004 16:09:17 |
|