Репозитории ALT
5.1: | 3.2.0.7-alt0.M51.1 |
4.1: | 3.0.0.10-alt1.M41.1 |
4.0: | 2.4.1.7-alt0.M40.1 |
3.0: | 1.1.5-alt1 |
Группа :: Офис
Пакет: openoffice.org
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: bmp32.diff
Скачать
Скачать
Index: vcl/source/gdi/impbmp.cxx
===================================================================
RCS file: /cvs/oo/gsl/vcl/source/gdi/impbmp.cxx,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 impbmp.cxx
--- vcl/source/gdi/impbmp.cxx 2000/09/18 17:05:37 1.1.1.1
+++ vcl/source/gdi/impbmp.cxx 2002/11/05 20:13:01
@@ -177,7 +177,7 @@
#endif
nBitCount = mpSalBitmap->GetBitCount();
- return( ( nBitCount <= 1 ) ? 1 : ( nBitCount <= 4 ) ? 4 : ( nBitCount <= 8 ) ? 8 : 24 );
+ return( ( nBitCount <= 1 ) ? 1 : ( nBitCount <= 4 ) ? 4 : ( nBitCount <= 8 ) ? 8 : ( nBitCount <= 24 ) ? 24 : 32 );
}
// -----------------------------------------------------------------------
Index: vcl/unx/source/gdi/salbmp.cxx
===================================================================
RCS file: /cvs/oo/gsl/vcl/unx/source/gdi/salbmp.cxx,v
retrieving revision 1.8
diff -u -r1.8 salbmp.cxx
--- vcl/unx/source/gdi/salbmp.cxx 2001/09/11 15:52:22 1.8
+++ vcl/unx/source/gdi/salbmp.cxx 2002/11/05 20:13:05
@@ -150,7 +150,7 @@
BitmapBuffer* SalBitmap::ImplCreateDIB( const Size& rSize, USHORT nBitCount, const BitmapPalette& rPal )
{
- DBG_ASSERT( nBitCount == 1 || nBitCount == 4 || nBitCount == 8 || nBitCount == 24, "Unsupported BitCount!" );
+ DBG_ASSERT( nBitCount == 1 || nBitCount == 4 || nBitCount == 8 || nBitCount == 24 || nBitCount == 32, "Unsupported BitCount!" );
BitmapBuffer* pDIB;
@@ -169,9 +169,10 @@
case( 1 ): pDIB->mnFormat |= BMP_FORMAT_1BIT_MSB_PAL; break;
case( 4 ): pDIB->mnFormat |= BMP_FORMAT_4BIT_MSN_PAL; break;
case( 8 ): pDIB->mnFormat |= BMP_FORMAT_8BIT_PAL; break;
+ case( 24 ): pDIB->mnFormat |= BMP_FORMAT_24BIT_TC_BGR; break;
default:
- pDIB->mnFormat |= BMP_FORMAT_24BIT_TC_BGR;
+ pDIB->mnFormat |= BMP_FORMAT_32BIT_TC_BGRA;
break;
}
@@ -802,8 +803,10 @@
nBitCount = 4;
else if( nBitCount <= 8 )
nBitCount = 8;
- else
+ else if ( nBitCount <= 24)
nBitCount = 24;
+ else
+ nBitCount = 32;
}
}
else
Index: svtools/bmpmaker/bmpcore.cxx
===================================================================
RCS file: /cvs/util/svtools/bmpmaker/bmpcore.cxx,v
retrieving revision 1.12
diff -u -p -u -r1.12 bmpcore.cxx
--- svtools/bmpmaker/bmpcore.cxx 24 Apr 2003 13:01:46 -0000 1.12
+++ svtools/bmpmaker/bmpcore.cxx 26 Sep 2003 10:58:13 -0000
@@ -107,7 +107,8 @@ void BmpCreator::ImplCreate( SvStream& r
const ::std::vector< DirEntry >& rInDirs,
const DirEntry& rOut,
const String& rName,
- const LangInfo& rLang )
+ const LangInfo& rLang,
+ const Color& rMaskColor)
{
const sal_uInt32 nOldPos = pSRS->Tell();
const char* pCollectFile = getenv( "BMP_COLLECT_FILE" );
@@ -215,7 +216,7 @@ void BmpCreator::ImplCreate( SvStream& r
SvFileStream aIStm( aFileName, STREAM_READ );
aIStm >> aBmp;
aIStm.Close();
-
+
if( pCollectStm && !aBmp.IsEmpty() )
{
const ByteString aCollectString( aFileName, RTL_TEXTENCODING_ASCII_US );
@@ -237,6 +238,26 @@ void BmpCreator::ImplCreate( SvStream& r
}
else
{
+ if (aBmp.GetBitCount () != 32)
+ {
+ aBmp.Convert (BMP_CONVERSION_32BIT);
+
+ BitmapWriteAccess *pUpd = aBmp.AcquireWriteAccess();
+
+ for( long nY = 0; nY < aSize.Height(); nY++ ) {
+ for( long nX = 0; nX < aSize.Width(); nX++ ) {
+ BitmapColor aCol;
+ aCol = pUpd->GetPixel( nY, nX );
+ if( aCol == rMaskColor )
+ pUpd->SetAlpha( nY, nX, 0 );
+ else
+ pUpd->SetAlpha( nY, nX, 255 );
+ }
+ }
+
+ aBmp.ReleaseAccess( pUpd );
+ }
+
if( aTotalBmp.IsEmpty() )
{
// first bitmap determines metrics of total bitmap
@@ -267,6 +286,15 @@ void BmpCreator::ImplCreate( SvStream& r
aBmp.Convert( BMP_CONVERSION_24BIT );
aTotalBmp.CopyPixel( aDst, aSrc, &aBmp );
+
+ BitmapReadAccess *pSrc = aBmp.AcquireWriteAccess();
+ BitmapWriteAccess *pDst = aTotalBmp.AcquireWriteAccess();
+ for( long nY = 0; nY < aSize.Height(); nY++ )
+ for( long nX = 0; nX < aSize.Width(); nX++ )
+ pDst->SetAlpha( nY, nX + aDst.Left(), pSrc->GetAlpha( nY, nX ) );
+ aTotalBmp.ReleaseAccess( pDst );
+ aBmp.ReleaseAccess( pSrc );
+
aValidBmpBitVector[ n ] = true;
}
}
@@ -335,6 +363,13 @@ void BmpCreator::ImplCreate( SvStream& r
// -----------------------------------------------------------------------------
+static sal_Int32 GetColorVal( const ByteString &rLine )
+{
+ ByteString aVal( rLine.GetToken( 1, '=' ) );
+ aVal.EraseLeadingChars();
+ return aVal.ToInt32() / 256;
+}
+
void BmpCreator::Create( const String& rSRSName,
const ::std::vector< String >& rInDirs,
const String& rOutName,
@@ -395,6 +430,8 @@ void BmpCreator::Create( const String& r
const String aName( aText.GetToken( 1, '"' ) );
+ Color aMaskColor;
+
do
{
if( !bLangDep &&
@@ -405,6 +442,13 @@ void BmpCreator::Create( const String& r
bLangDep = TRUE;
}
+ if( aByteText.Search( "Red" ) != STRING_NOTFOUND )
+ aMaskColor.SetRed( GetColorVal( aByteText ) );
+ if( aByteText.Search( "Green" ) != STRING_NOTFOUND )
+ aMaskColor.SetGreen( GetColorVal( aByteText ) );
+ if( aByteText.Search( "Blue" ) != STRING_NOTFOUND )
+ aMaskColor.SetBlue( GetColorVal( aByteText ) );
+
if (!pSRS->ReadLine(aByteText))
break;
}
@@ -415,7 +459,7 @@ void BmpCreator::Create( const String& r
if( aText.Len() )
{
bDone = TRUE;
- ImplCreate( *pSRS, aInDirs, aOutDir, aName, rLang );
+ ImplCreate( *pSRS, aInDirs, aOutDir, aName, rLang, aMaskColor );
}
else if( ( rLang.mnLangNum != 49 ) && !bLangDep )
{
Index: vcl/source/gdi/bitmap.cxx
===================================================================
RCS file: /cvs/gsl/vcl/source/gdi/bitmap.cxx,v
retrieving revision 1.7
diff -u -p -u -r1.7 bitmap.cxx
--- vcl/source/gdi/bitmap.cxx 24 Apr 2003 14:56:22 -0000 1.7
+++ vcl/source/gdi/bitmap.cxx 12 Sep 2003 14:18:51 -0000
@@ -980,7 +984,9 @@ BOOL Bitmap::CopyPixel( const Rectangle&
{
long nNextIndex = 0L;
- if( ( nSrcBitCount == 24 ) && ( nDstBitCount < 24 ) )
+ if (nSrcBitCount == 32 && nDstBitCount < 32)
+ Convert (BMP_CONVERSION_32BIT);
+ else if( ( nSrcBitCount == 24 ) && ( nDstBitCount < 24 ) )
Convert( BMP_CONVERSION_24BIT );
else if( ( nSrcBitCount == 8 ) && ( nDstBitCount < 8 ) )
{
@@ -1772,20 +1778,58 @@ Bitmap Bitmap::CreateDisplayBitmap( Outp
// ------------------------------------------------------------------
+static BYTE doSaturate( BYTE c, BYTE i)
+{
+ int v = 1.2 * c - 0.2 * i;
+ if( v < 0 )
+ return 0;
+ else if( v > 255 )
+ return 255;
+ else
+ return v;
+}
+
Bitmap Bitmap::GetColorTransformedBitmap( BmpColorMode eColorMode ) const
{
Bitmap aRet( *this );
- Color* pSrcColors = NULL;
- Color* pDstColors = NULL;
- ULONG nColorCount = 0;
-
- Image::GetColorTransformArrays( (ImageColorTransform) eColorMode, pSrcColors, pDstColors, nColorCount );
- if( nColorCount && pSrcColors && pDstColors )
- aRet.Replace( pSrcColors, pDstColors, nColorCount );
+ if (eColorMode == BMP_COLOR_HIGHCONTRAST && GetBitCount() >= 24) {
- delete[] pSrcColors;
- delete[] pDstColors;
+ // Yet another special case for icons
+ BitmapReadAccess* pAcc = AcquireReadAccess();
+ BitmapWriteAccess* pDis = aRet.AcquireWriteAccess();
+
+ Size aSize = GetSizePixel();
+
+ for( long nY = 0; nY < aSize.Height(); nY++ ) {
+ for( long nX = 0; nX < aSize.Width(); nX++ ) {
+ BitmapColor col = pAcc->GetPixel( nY, nX );
+ BYTE i = ( col.GetRed() * 0.3 + // magic numbers from gdk-pixbuf
+ col.GetGreen() * 0.59 +
+ col.GetBlue () * 0.11 );
+ col.SetRed (doSaturate ( col.GetRed(), i ) );
+ col.SetGreen (doSaturate ( col.GetGreen(), i ) );
+ col.SetBlue (doSaturate ( col.GetBlue(), i ) );
+ pDis->SetPixel( nY, nX, col );
+ }
+ }
+
+ aRet.ReleaseAccess( pDis );
+ ReleaseAccess( pAcc );
+ } else {
+
+ Color* pSrcColors = NULL;
+ Color* pDstColors = NULL;
+ ULONG nColorCount = 0;
+
+ Image::GetColorTransformArrays( (ImageColorTransform) eColorMode, pSrcColors, pDstColors, nColorCount );
+
+ if( nColorCount && pSrcColors && pDstColors )
+ aRet.Replace( pSrcColors, pDstColors, nColorCount );
+
+ delete[] pSrcColors;
+ delete[] pDstColors;
+ }
return aRet;
}
Index: vcl/inc/bitmap.hxx
===================================================================
RCS file: /cvs/gsl/vcl/inc/bitmap.hxx,v
retrieving revision 1.8
diff -u -p -u -r1.8 bitmap.hxx
--- vcl/inc/bitmap.hxx 24 Apr 2003 14:56:11 -0000 1.8
+++ vcl/inc/bitmap.hxx 13 Sep 2003 10:30:56 -0000
@@ -125,7 +125,8 @@ enum BmpConversion
BMP_CONVERSION_24BIT = 7,
BMP_CONVERSION_4BIT_TRANS = 8,
BMP_CONVERSION_8BIT_TRANS = 9,
- BMP_CONVERSION_GHOSTED = 10
+ BMP_CONVERSION_GHOSTED = 10,
+ BMP_CONVERSION_32BIT = 11
};
// ------------------------------------------------------------------------
@@ -389,6 +390,7 @@ public:
ULONG GetChecksum() const;
Bitmap CreateDisplayBitmap( OutputDevice* pDisplay );
+ Bitmap GetAlphaMask() const;
Bitmap GetColorTransformedBitmap( BmpColorMode eColorMode ) const;
static const BitmapPalette& GetGreyPalette( USHORT nEntries );
Index: svtools/bmpmaker/bmpcore.hxx
===================================================================
RCS file: /cvs/util/svtools/bmpmaker/bmpcore.hxx,v
retrieving revision 1.3
diff -u -p -u -r1.3 bmpcore.hxx
--- svtools/bmpmaker/bmpcore.hxx 30 Oct 2002 16:27:55 -0000 1.3
+++ svtools/bmpmaker/bmpcore.hxx 13 Sep 2003 11:10:27 -0000
@@ -112,7 +112,8 @@ private:
const ::std::vector< DirEntry >& rInDirs,
const DirEntry& rOut,
const String& rName,
- const LangInfo& rLang );
+ const LangInfo& rLang,
+ const Color& rMaskColor );
protected:
Index: vcl/inc/bmpacc.hxx
===================================================================
RCS file: /cvs/gsl/vcl/inc/bmpacc.hxx,v
retrieving revision 1.3
diff -u -p -u -r1.3 bmpacc.hxx
--- vcl/inc/bmpacc.hxx 28 Jun 2001 13:08:49 -0000 1.3
+++ vcl/inc/bmpacc.hxx 24 Sep 2003 16:36:25 -0000
@@ -203,6 +203,7 @@ public:
inline BitmapColor GetPixel( long nY, long nX ) const;
inline BitmapColor GetColor( long nY, long nX ) const;
inline BYTE GetLuminance( long nY, long nX ) const;
+ inline BYTE GetAlpha( long nY, long nX ) const;
};
// ---------------------
@@ -235,6 +236,7 @@ public:
inline void SetPaletteColor( USHORT nColor, const BitmapColor& rBitmapColor );
inline void SetPixel( long nY, long nX, const BitmapColor& rBitmapColor );
+ inline void SetAlpha( long nY, long nX, const BYTE nAlpha );
inline void SetLineColor( const BitmapColor& rColor );
inline const BitmapColor& GetLineColor() const;
@@ -455,6 +457,16 @@ inline BYTE BitmapReadAccess::GetLuminan
// ------------------------------------------------------------------
+inline BYTE BitmapReadAccess::GetAlpha( long nY, long nX ) const
+{
+ if( maBitmap.GetBitCount() != 32 )
+ return 255;
+ else
+ return mpScanBuf[ nY ] [ ( nX << 2 ) + 3 ];
+}
+
+// ------------------------------------------------------------------
+
inline BitmapWriteAccess::BitmapWriteAccess( Bitmap& rBitmap ) :
BitmapReadAccess( rBitmap, TRUE ),
maLineColor ( 0, 0, 0 ),
@@ -541,6 +553,12 @@ inline void BitmapWriteAccess::SetPixel(
BMP_ASSERT( nX < mpBuffer->mnWidth, "x-coordinate out of range!" );
BMP_ASSERT( nY < mpBuffer->mnHeight, "y-coordinate out of range!" );
mFncSetPixel( mpScanBuf[ nY ], nX, rBitmapColor, maColorMask );
+}
+
+inline void BitmapWriteAccess::SetAlpha( long nY, long nX, const BYTE nAlpha )
+{
+ if( maBitmap.GetBitCount() == 32 )
+ mpScanBuf[ nY ] [ ( nX << 2 ) + 3 ] = nAlpha;
}
#endif // _SV_BMPACC_HXX
Index: vcl/source/gdi/bmpacc2.cxx
===================================================================
RCS file: /cvs/gsl/vcl/source/gdi/bmpacc2.cxx,v
retrieving revision 1.2
diff -u -p -u -r1.2 bmpacc2.cxx
--- vcl/source/gdi/bmpacc2.cxx 28 Jun 2001 13:10:36 -0000 1.2
+++ vcl/source/gdi/bmpacc2.cxx 24 Sep 2003 16:36:49 -0000
@@ -277,7 +278,7 @@ IMPL_FORMAT_GETPIXEL( _32BIT_TC_ABGR )
IMPL_FORMAT_SETPIXEL( _32BIT_TC_ABGR )
{
- *( pScanline = pScanline + ( nX << 2 ) )++ = 0;
+ pScanline += ( nX << 2 ) + 1;
*pScanline++ = rBitmapColor.GetBlue();
*pScanline++ = rBitmapColor.GetGreen();
*pScanline = rBitmapColor.GetRed();
@@ -300,7 +302,7 @@ IMPL_FORMAT_GETPIXEL( _32BIT_TC_ARGB )
IMPL_FORMAT_SETPIXEL( _32BIT_TC_ARGB )
{
- *( pScanline = pScanline + ( nX << 2 ) )++ = 0;
+ pScanline = pScanline + ( nX << 2 ) + 1;
*pScanline++ = rBitmapColor.GetRed();
*pScanline++ = rBitmapColor.GetGreen();
*pScanline = rBitmapColor.GetBlue();
@@ -326,7 +328,6 @@ IMPL_FORMAT_SETPIXEL( _32BIT_TC_BGRA )
*( pScanline = pScanline + ( nX << 2 ) )++ = rBitmapColor.GetBlue();
*pScanline++ = rBitmapColor.GetGreen();
*pScanline++ = rBitmapColor.GetRed();
- *pScanline = 0;
}
// ------------------------------------------------------------------
@@ -349,7 +350,6 @@ IMPL_FORMAT_SETPIXEL( _32BIT_TC_RGBA )
*( pScanline = pScanline + ( nX << 2 ) )++ = rBitmapColor.GetRed();
*pScanline++ = rBitmapColor.GetGreen();
*pScanline++ = rBitmapColor.GetBlue();
- *pScanline = 0;
}
// ------------------------------------------------------------------
Index: vcl/source/gdi/bitmap3.cxx
===================================================================
RCS file: /cvs/gsl/vcl/source/gdi/bitmap3.cxx,v
retrieving revision 1.3
diff -u -p -u -r1.3 bitmap3.cxx
--- vcl/source/gdi/bitmap3.cxx 27 Aug 2001 12:57:08 -0000 1.3
+++ vcl/source/gdi/bitmap3.cxx 24 Sep 2003 16:39:29 -0000
@@ -401,6 +401,13 @@ BOOL Bitmap::Convert( BmpConversion eCon
bRet = ImplConvertGhosted();
break;
+ case BMP_CONVERSION_32BIT:
+ if (nBitCount < 32)
+ bRet = ImplConvertUp (32, FALSE);
+ else
+ bRet = TRUE;
+ break;
+
default:
DBG_ERROR( "Bitmap::Convert(): Unsupported conversion" );
break;
@@ -1074,7 +1081,8 @@ BOOL Bitmap::ImplScaleInterpolate( const
BitmapReadAccess* pReadAcc = AcquireReadAccess();
long nWidth = pReadAcc->Width();
long nHeight = pReadAcc->Height();
- Bitmap aNewBmp( Size( nNewWidth, nHeight ), 24 );
+ Bitmap aNewBmp( Size( nNewWidth, nHeight ),
+ GetBitCount() == 32 ? 32 : 24 );
BitmapWriteAccess* pWriteAcc = aNewBmp.AcquireWriteAccess();
long* pLutInt;
long* pLutFrac;
@@ -1184,7 +1192,8 @@ BOOL Bitmap::ImplScaleInterpolate( const
bRet = FALSE;
ImplAssignWithSize( aNewBmp );
pReadAcc = AcquireReadAccess();
- aNewBmp = Bitmap( Size( nNewWidth, nNewHeight ), 24 );
+ aNewBmp = Bitmap( Size( nNewWidth, nNewHeight ),
+ GetBitCount() == 32 ? 32 : 24 );
pWriteAcc = aNewBmp.AcquireWriteAccess();
if( pReadAcc && pWriteAcc )
Index: vcl/source/gdi/bitmap2.cxx
===================================================================
RCS file: /cvs/gsl/vcl/source/gdi/bitmap2.cxx,v
retrieving revision 1.4
diff -u -p -u -r1.4 bitmap2.cxx
--- vcl/source/gdi/bitmap2.cxx 24 Apr 2003 13:17:58 -0000 1.4
+++ vcl/source/gdi/bitmap2.cxx 24 Sep 2003 16:40:07 -0000
@@ -204,7 +204,8 @@ BOOL Bitmap::ImplReadDIB( SvStream& rISt
{
USHORT nBitCount = ( aHeader.nBitCount <= 1 ) ? 1 :
( aHeader.nBitCount <= 4 ) ? 4 :
- ( aHeader.nBitCount <= 8 ) ? 8 : 24;
+ ( aHeader.nBitCount <= 8 ) ? 8 :
+ ( aHeader.nBitCount <= 24 ) ? 24 : 32;
const Size aSizePixel( aHeader.nWidth, aHeader.nHeight );
BitmapPalette aDummyPal;
@@ -640,6 +641,7 @@ BOOL Bitmap::ImplReadDIBBits( SvStream&
ColorMask aMask( nRMask, nGMask, nBMask );
BitmapColor aColor;
UINT32* pTmp32;
+ UINT32 nCol;
for( long nY = rHeader.nHeight - 1L; nY >= 0L; nY-- )
{
@@ -647,8 +649,10 @@ BOOL Bitmap::ImplReadDIBBits( SvStream&
for( long nX = 0L; nX < nWidth; nX++ )
{
- aMask.GetColorFor32Bit( aColor, (BYTE*) pTmp32++ );
+ BYTE *pPix = (BYTE *) pTmp32++;
+ aMask.GetColorFor32Bit( aColor, pPix );
rAcc.SetPixel( nY, nX, aColor );
+ rAcc.SetAlpha( nY, nX, pPix[ 3 ] );
}
}
}
@@ -1009,6 +1013,27 @@ BOOL Bitmap::ImplWriteDIBBits( SvStream&
}
break;
+ case 24:
+ {
+ BitmapColor aPixelColor;
+
+ for( long nY = nHeight - 1; nY >= 0L; nY-- )
+ {
+ pTmp = pBuf;
+
+ for( long nX = 0L; nX < nWidth; nX++ )
+ {
+ aPixelColor = rAcc.GetPixel( nY, nX );
+ *pTmp++ = aPixelColor.GetBlue();
+ *pTmp++ = aPixelColor.GetGreen();
+ *pTmp++ = aPixelColor.GetRed();
+ }
+
+ rOStm.Write( pBuf, nAlignedWidth );
+ }
+ }
+ break;
+
default:
{
BitmapColor aPixelColor;
@@ -1023,6 +1048,7 @@ BOOL Bitmap::ImplWriteDIBBits( SvStream&
*pTmp++ = aPixelColor.GetBlue();
*pTmp++ = aPixelColor.GetGreen();
*pTmp++ = aPixelColor.GetRed();
+ *pTmp++ = rAcc.GetAlpha( nY, nX );
}
rOStm.Write( pBuf, nAlignedWidth );
@@ -1038,6 +1064,38 @@ BOOL Bitmap::ImplWriteDIBBits( SvStream&
rImageSize = rOStm.Tell() - rImageSize;
return( rOStm.GetError() == 0UL );
+}
+
+// ------------------------------------------------------------------
+
+Bitmap
+Bitmap::GetAlphaMask() const
+{
+ if( GetBitCount() < 32 )
+ return Bitmap();
+
+ Size aSize = GetSizePixel();
+ Bitmap aAlpha( aSize, 8, &GetGreyPalette( 256 ) );
+
+ aAlpha.Erase( COL_WHITE );
+
+ BitmapReadAccess *pSrc = AcquireReadAccess();
+ BitmapWriteAccess *pDst = aAlpha.AcquireWriteAccess();
+
+ for( long nY = 0; nY < aSize.Height(); nY++ )
+ {
+ for( long nX = 0; nX < aSize.Width(); nX++ )
+ {
+ BitmapColor aCol;
+ aCol = pSrc->GetPixel( nY, nX );
+ pDst->SetPixel( nY, nX, BitmapColor( 255 - pSrc->GetAlpha( nY, nX ) ) );
+ }
+ }
+
+ ReleaseAccess( pSrc );
+ ReleaseAccess( pDst );
+
+ return aAlpha;
}
// ------------------------------------------------------------------
--- /opt/OpenOffice/openoffice/build/OOO_1_1_3_fix2/vcl/source/gdi/alpha.cxx 2004-09-02 12:52:10.000000000 +0100
+++ vcl/source/gdi/alpha.cxx 2004-09-08 08:25:13.012597552 +0100
@@ -135,6 +135,9 @@
void AlphaMask::ImplSetBitmap( const Bitmap& rBitmap )
{
*(Bitmap*) this = rBitmap;
+
+ if( !!rBitmap )
+ Bitmap::Convert( BMP_CONVERSION_8BIT_GREYS );
}
// -----------------------------------------------------------------------------