FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Soporte completo de AlphaBlend para FWH !!!
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Soporte completo de AlphaBlend para FWH !!!
Posted: Sun Mar 29, 2009 04:57 PM

Despues del éxito que hemos tenido implementando HasAlpha() (no necesita de FreeImage.dll) para los bitmaps:

viewtopic.php?f=3t=15008p=77857#p77857

Hemos conseguido implementar un nuevo método HasAlpha() para la Clase TImage tambien :-)

Ahora tenemos todo lo que necesitábamos para tener un soporte completo de AlphaBlend en FiveWin :-)

Aun tenemos que decidir la mejor forma de ofrecer esta funcionalidad, pues no queremos forzar el uso de FreeImage.dll a menos que la aplicación quiera usar formatos gráficos distintos de los bitmaps, como PNGs, etc.

&&

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Soporte completo de AlphaBlend para FWH !!!
Posted: Sun Mar 29, 2009 05:12 PM
Un pequeño ejemplo de uso:

test.prg
Code (fw): Select all Collapse
#include "FiveWin.ch"

function Main()

   local oImg

   LoadFreeImage()

   // DEFINE IMAGE oImg FILENAME "c:\fwh\bitmaps\arrow.bmp" // No alpha

   DEFINE IMAGE oImg FILENAME "c:\fwh\bitmaps\AlphaBmp\world.bmp" // with alpha

   MsgInfo( oImg:HasAlpha() )

   oImg:End()

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Soporte completo de AlphaBlend para FWH !!!
Posted: Sun Mar 29, 2009 05:13 PM

Para quienes esteis interesados en probar este nuevo método HasAlpha() de la Clase TImage, podemos publicar aqui los cambios necesarios a implementar en la Clase TImage :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Soporte completo de AlphaBlend para FWH !!!
Posted: Sun Mar 29, 2009 11:32 PM
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Re: Soporte completo de AlphaBlend para FWH !!!
Posted: Mon Mar 30, 2009 02:10 PM

Excelente.....!!!!!!!

Antonio, Siempre asombrandonos.... je je

Pruebo las modificaciones a las clases descritas en el foro en Ingles y posteo mis comentarios...

Tenia una seleccion de Alpha Bmps que queria utilizar en un nuevo desarrollo, ahora podre aprovecharlos bien.

Desde Chile
Adolfo

PD: las clases involucradas en los cambios serian, la TIMAGE, TBITMAP, BtnBmp, TBAR.. alguna mas ?

;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Soporte completo de AlphaBlend para FWH !!!
Posted: Mon Mar 30, 2009 02:34 PM

Adolfo,

La idea es usar HasAlpha() y los metodos HasAlpha() para decidir si el bitmap se dibuja como antes o usando ABPaint()

Lo que ahora tenemos que solucionar es si llamar siempre a HasAlpha(), que tal vez sea lenta pues "alocatea" memoria y luego la libera, o anotar en el objeto que tiene lApha a .T. y eso puede implicar otros cambios, pero ganariamos en velocidad y evitariamos tener que pedir memoria y liberarla, una y otra vez.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Re: Soporte completo de AlphaBlend para FWH !!!
Posted: Mon Mar 30, 2009 02:45 PM

Antonio....

Tengo una idea, la opcion del "flag" lAlpha es buena, aunque nos obligaria a ponerla en cada objeto de imagen que contruyamos.

No se puede habilitar la opcion de un flag de Aplicacion para decidir si usar o no ALphas en todas las imagenes, algo como el SETALPHA(.T.)

Ya que si las usas ( los BMP con ALHPA) , lo ideal es usarla en toda la aplicacion., para mantener la coherencia de calidad en las imagenes.. digo yo...

My 2.5 cents.

Desde Chile
Adolfo

;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Soporte completo de AlphaBlend para FWH !!!
Posted: Mon Mar 30, 2009 02:51 PM
Adolfo,

> aunque nos obligaria a ponerla en cada objeto de imagen

No. El método HasAlpha() lo haría automaticamente pero solo llamándolo una vez.

Asi:

::lAlpha = ::HasAlpha()

cuando se construye el objeto, tanto para la clase TBitmap como para la TImage.

Asi a la hora de pintarlo solo hay que hacer:
Code (fw): Select all Collapse
if oBmp:lAlpha
   ABPaint( ... )
else
   ... como antes ...
endif

Asi solo se llamaría una sola vez a HasAlpha() por cada imagen :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion