summaryrefslogtreecommitdiff
path: root/svtools/source
diff options
context:
space:
mode:
Diffstat (limited to 'svtools/source')
-rw-r--r--svtools/source/graphic/transformer.cxx43
1 files changed, 9 insertions, 34 deletions
diff --git a/svtools/source/graphic/transformer.cxx b/svtools/source/graphic/transformer.cxx
index 17fb3a3f87c6..12bc40f3babc 100644
--- a/svtools/source/graphic/transformer.cxx
+++ b/svtools/source/graphic/transformer.cxx
@@ -46,28 +46,6 @@ GraphicTransformer::~GraphicTransformer()
}
-void setAlpha( Bitmap& rBitmap, AlphaMask& rAlpha, sal_uInt8 cIndexFrom, sal_Int8 nAlphaTo )
-{
- BitmapWriteAccess* pWriteAccess = rAlpha.AcquireWriteAccess();
- BitmapReadAccess* pReadAccess = rBitmap.AcquireReadAccess();
- if ( pReadAccess && pWriteAccess )
- {
- for ( long nY = 0; nY < pReadAccess->Height(); nY++ )
- {
- Scanline pScanline = pWriteAccess->GetScanline( nY );
- Scanline pScanlineRead = pReadAccess->GetScanline( nY );
- for ( long nX = 0; nX < pReadAccess->Width(); nX++ )
- {
- const sal_uInt8 cIndex = pReadAccess->GetIndexFromData( pScanlineRead, nX );
- if ( cIndex == cIndexFrom )
- pWriteAccess->SetPixelOnData( pScanline, nX, BitmapColor(nAlphaTo) );
- }
- }
- }
- Bitmap::ReleaseAccess( pReadAccess );
- rAlpha.ReleaseAccess( pWriteAccess );
-}
-
// XGraphicTransformer
uno::Reference< graphic::XGraphic > SAL_CALL GraphicTransformer::colorChange(
const uno::Reference< graphic::XGraphic >& rxGraphic, sal_Int32 nColorFrom, sal_Int8 nTolerance, sal_Int32 nColorTo, sal_Int8 nAlphaTo )
@@ -90,10 +68,9 @@ uno::Reference< graphic::XGraphic > SAL_CALL GraphicTransformer::colorChange(
if (aBitmapEx.IsAlpha())
{
- AlphaMask aAlphaMask(aBitmapEx.GetAlpha());
- setAlpha(aBitmap, aAlphaMask, cIndexFrom, nAlphaTo);
- aBitmap.Replace(aColorFrom, aColorTo, nTolerance);
- aGraphic = ::Graphic(BitmapEx(aBitmap, aAlphaMask));
+ aBitmapEx.setAlphaFrom( cIndexFrom, nAlphaTo );
+ aBitmapEx.Replace(aColorFrom, aColorTo, nTolerance);
+ aGraphic = ::Graphic(aBitmapEx);
}
else if (aBitmapEx.IsTransparent())
{
@@ -107,10 +84,9 @@ uno::Reference< graphic::XGraphic > SAL_CALL GraphicTransformer::colorChange(
}
else
{
- AlphaMask aAlphaMask(aBitmapEx.GetMask());
- setAlpha(aBitmap, aAlphaMask, cIndexFrom, 0xff - nAlphaTo);
- aBitmap.Replace(aColorFrom, aColorTo, nTolerance);
- aGraphic = ::Graphic(BitmapEx(aBitmap, aAlphaMask));
+ aBitmapEx.setAlphaFrom(cIndexFrom, 0xff - nAlphaTo);
+ aBitmapEx.Replace(aColorFrom, aColorTo, nTolerance);
+ aGraphic = ::Graphic(aBitmapEx);
}
}
else
@@ -123,10 +99,9 @@ uno::Reference< graphic::XGraphic > SAL_CALL GraphicTransformer::colorChange(
}
else
{
- AlphaMask aAlphaMask(aBitmapEx.GetSizePixel());
- setAlpha(aBitmap, aAlphaMask, cIndexFrom, nAlphaTo);
- aBitmap.Replace(aColorFrom, aColorTo, nTolerance);
- aGraphic = ::Graphic(BitmapEx(aBitmap, aAlphaMask));
+ aBitmapEx.setAlphaFrom(cIndexFrom, nAlphaTo);
+ aBitmapEx.Replace(aColorFrom, aColorTo, nTolerance);
+ aGraphic = ::Graphic(aBitmapEx);
}
}
}