Kaydet (Commit) e1669188 authored tarafından Thorsten Behrens's avatar Thorsten Behrens

Fix fdo#59616 - ensure BitmapEx has same-sized subbitmaps

Lots of code relies on the fact that the two bitmaps inside a
BitmapEx actually have the same size. Enforce that convention during
import.

Change-Id: I436ccc33b06c627cd6347747d22c24bfaf7ca932
üst e8e82bd2
......@@ -806,6 +806,24 @@ SvStream& operator>>( SvStream& rIStm, BitmapEx& rBitmapEx )
if( !!aMask)
{
// fdo#59616 enforce same size for both mask and content
if( aMask.GetSizePixel() != aBmp.GetSizePixel() )
{
Bitmap aNewMask;
const Size aNominalSize=aBmp.GetSizePixel();
BitmapReadAccess aAcc(aMask);
if( aAcc.HasPalette() )
aNewMask = Bitmap(aNominalSize,
aMask.GetBitCount(),
&aAcc.GetPalette());
else
aNewMask = Bitmap(aNominalSize,
aMask.GetBitCount());
const Rectangle aCopyArea(Point(0,0), aNominalSize);
aNewMask.CopyPixel(aCopyArea, aCopyArea, &aMask);
aMask = aNewMask;
}
// do we have an alpha mask?
if( ( 8 == aMask.GetBitCount() ) && aMask.HasGreyPalette() )
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment