FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour TXImage from resources
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
TXImage from resources
Posted: Fri Oct 23, 2015 09:54 AM

I noticed that there are not Redefine() method in TXImage so we cannot replace TImage with TXImage yet. :-(

EMG

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: TXImage from resources
Posted: Fri Oct 23, 2015 12:36 PM

I've tried to replace FILOADIMAGE() with GDIP_IMAGEFROMFILE() in TImage. It works but the image I get has a very bad quality (with FILOADIMAGE() the quality was very good).

Any ideas?

EMG

Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: TXImage from resources
Posted: Sat Oct 24, 2015 05:56 AM

Enrico , use WndReadPalBmpEx( Self, uBmp, aReSize ) -> aBmp // format: { hBitmap, hPalette, nBmpWidth, nBmpHeight, lAlpha, cName, lResource }
This function is in btnbmp.prg for substitution in test .
In my tests gdi+ it gives equal and often better quality than freeimage ( especially with png ) .
You can put a self-contained example where you see the lack of quality (with an Image which can access) and see how we can fix it,
I have some files and tgdiplus.prg gdiplis.cpp with more features and modifications as the original if you need to send them a private message.

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: TXImage from resources
Posted: Sat Oct 24, 2015 09:53 AM

The problem might come from the lack of resize in my code. With FreeImage we don't need to resize the image. I'll experiment further and report back, thank you.

EMG

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: TXImage from resources
Posted: Sat Oct 24, 2015 12:36 PM

Solved, it was my fault. Now it's ok, thank you.

EMG

Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: TXImage from resources
Posted: Sat Oct 24, 2015 01:01 PM
all right :-) .
To resize, I prefer to do it from GDI +, the result is better.
Now in fwh the image is collected and returned your HBITMAP and resize with classics functions.
It is better to collect GDI + image, GDI + resize and return HBITMAP from resized image
Code (fw): Select all Collapse
function resizeImage( cFile ,nWith, nHeight)
local hbitmap
local ogdi:=gdibmp():new(  cFile  )
      ogdi:resize(  nWith, nHeight )
      hbitmap := ogdi:GetGDIHbitmap() 
      ogdi:end()
return hbitmap

Continue the discussion