summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-02-07 15:09:12 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-02-08 09:01:56 +0100
commit5531e6338bc9d7d5676a5c52059d5ccb2fcccb0c (patch)
treea9aa8b54de82c75f4084386cb66036889f78e379 /vcl
parent7f9f58f3a304733f7089719a5a65eef8c68c2b8d (diff)
move setAlphaFrom from GraphicTransformer to BitmapEx
Change-Id: I69329c61e81791db3806fabe3256571fa937deb6 Reviewed-on: https://gerrit.libreoffice.org/49360 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/gdi/bitmapex.cxx28
1 files changed, 28 insertions, 0 deletions
diff --git a/vcl/source/gdi/bitmapex.cxx b/vcl/source/gdi/bitmapex.cxx
index bf3a57b2ad75..3acb0a36f26a 100644
--- a/vcl/source/gdi/bitmapex.cxx
+++ b/vcl/source/gdi/bitmapex.cxx
@@ -1294,4 +1294,32 @@ BitmapEx createBlendFrame(
return pBlendFrameCache->m_aLastResult;
}
+void BitmapEx::Replace(const Color& rSearchColor,
+ const Color& rReplaceColor,
+ sal_uInt8 nTolerance)
+{
+ aBitmap.Replace(rSearchColor, rReplaceColor, nTolerance);
+}
+
+void BitmapEx::setAlphaFrom( sal_uInt8 cIndexFrom, sal_Int8 nAlphaTo )
+{
+ AlphaMask aAlphaMask(GetAlpha());
+ Bitmap::ScopedWriteAccess pWriteAccess(aAlphaMask);
+ Bitmap::ScopedReadAccess pReadAccess(aBitmap);
+ assert( pReadAccess.get() && pWriteAccess.get() );
+ if ( pReadAccess.get() && pWriteAccess.get() )
+ {
+ 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) );
+ }
+ }
+ }
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */