https://issues.apache.org/ooo/show_bug.cgi?id=121504

--- Comment #2 from Armin Le Grand <[email protected]> ---
ALG: First needed to figure out how DIBs (used in clipboard formats 'Bitmap'
and 'CF_DIB' are used and created. The operator<< and >> of Bitmap use
Bitmam::Read/Write (using default parameters for header and compression), which
do the DIB read/write stuff using quite some impl helper methods. This means
that despite the view places where DIB (DeviceIndependentBitmap) is really
used, all places which stream bitmaps use DIBs without need. It should only be
necessary in clipboard usage and evtl. Windows emf/wmf formats.
The clipboard cannot use transparency since the CF_DIBV5 which allows this is
not supported. This needs an extansion of the DIB read/write and allows adding
the alpha channel.
This collides with operator<< and >> of BitmapEx which streams the basic
bitmap, then adds two magic numbers and also stream an evtl. existing alpha
channel/mask *also* using DIB for this 2nd bitmap (streaming in reads ahead to
check the magic numbers, then evtl. imports alpha as DIB).
Thus, when supporting CF_DIBV5 in the standard Bitmap/BitmapEx streaming
operators alpha would be added double. Thus, extension of this is not
straightforward.
First step is to isolate the stream operators, the DIB tooling (currently
members of Bitmap) to see where and when this is used. Then check if it is
possible to use DIB only for cases where it is used and extend these cases.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to