diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-02-07 15:09:12 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-02-08 09:01:56 +0100 |
commit | 5531e6338bc9d7d5676a5c52059d5ccb2fcccb0c (patch) | |
tree | a9aa8b54de82c75f4084386cb66036889f78e379 /vcl | |
parent | 7f9f58f3a304733f7089719a5a65eef8c68c2b8d (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.cxx | 28 |
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: */ |