On 21/4/2011 06:41, Marco van de Voort wrote:
In our previous episode, Sven Barth said:
Am 20.04.2011 22:20, schrieb Leonardo M. Ram?:
Hi, I need to write a function that replaces TLazIntfImage by using fpImage,
and I can't find an alternative to GetDataLineStart. How can I replace it?.
Maybe I get your intention wrong, but TLazIntfImage is already using
fpImage and it derives from a TFPCustomImage itself.
True, but TFPCustomImage is abstact wrt memory layout and doens't provide
row level access, only pixel level access.
Only TFPMemoryImage adds the memory access, but IIRC only 64-bit pixels.
(16-bit RGBA)
While these abstractions make it easy to make fp/fcl-image somewhat
complete, they are also very memory hungry and slow.
Besides that there's not a uniform correlation between 16bit and 8bit.
See thread
http://www.mail-archive.com/fpc-devel@lists.freepascal.org/msg16506.html
the Lazarus implementation does the following to convert TColor (each
color channel with 8bit) to TFPColor (16bit channels):
8bit to 16bit : set low and high memory of each 16bit channel to the
8bit counterpart
if 8bit Red channel is $0F the 16bit Red will be $0F0F
16bit to 8bit: get the high memory of each 16bit channel
16 16bit Red is $001F the 8bit red will be $00
IMO is just wasting memory at least in the current implementation that
takes no advantage of the wider color range.
Luiz
IIRC I accelerated loading/saving simple 8-bit BMP images 20 to 50 times in
my work code.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal