summaryrefslogtreecommitdiff
path: root/canvas/source/vcl/canvasbitmaphelper.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'canvas/source/vcl/canvasbitmaphelper.cxx')
-rw-r--r--canvas/source/vcl/canvasbitmaphelper.cxx18
1 files changed, 2 insertions, 16 deletions
diff --git a/canvas/source/vcl/canvasbitmaphelper.cxx b/canvas/source/vcl/canvasbitmaphelper.cxx
index c2003f6a67cf..eef6258dded3 100644
--- a/canvas/source/vcl/canvasbitmaphelper.cxx
+++ b/canvas/source/vcl/canvasbitmaphelper.cxx
@@ -194,28 +194,14 @@ namespace vclcanvas
ENSURE_ARG_OR_THROW( pos.Y >= 0 && pos.Y < aBmpSize.Height(),
"Y coordinate out of bounds" );
- Bitmap aBitmap( mpBackBuffer->getBitmapReference().GetBitmap() );
- Bitmap aAlpha( mpBackBuffer->getBitmapReference().GetAlpha().GetBitmap() );
-
- Bitmap::ScopedReadAccess pReadAccess( aBitmap );
- Bitmap::ScopedReadAccess pAlphaReadAccess( aAlpha.IsEmpty() ?
- nullptr : aAlpha.AcquireReadAccess(),
- aAlpha );
- ENSURE_OR_THROW( pReadAccess.get() != nullptr,
- "Could not acquire read access to bitmap" );
+ ::Color aColor = mpBackBuffer->getBitmapReference().GetPixelColor(pos.X, pos.Y);
uno::Sequence< sal_Int8 > aRes( 4 );
sal_Int8* pRes = aRes.getArray();
-
- const BitmapColor aColor( pReadAccess->GetColor( pos.Y, pos.X ) );
pRes[ 0 ] = aColor.GetRed();
pRes[ 1 ] = aColor.GetGreen();
pRes[ 2 ] = aColor.GetBlue();
-
- if( pAlphaReadAccess.get() != nullptr )
- pRes[ 3 ] = pAlphaReadAccess->GetPixel( pos.Y, pos.X ).GetIndex();
- else
- pRes[ 3 ] = sal_uInt8(255);
+ pRes[ 3 ] = aColor.GetTransparency();
return aRes;
}