#i107137# fix wrong colorspace calculations
* applied patch from i107137
This commit is contained in:
@@ -1794,12 +1794,12 @@ namespace cairocanvas
|
|||||||
rendering::RGBColor* pOut( aRes.getArray() );
|
rendering::RGBColor* pOut( aRes.getArray() );
|
||||||
for( sal_Size i=0; i<nLen; i+=4 )
|
for( sal_Size i=0; i<nLen; i+=4 )
|
||||||
{
|
{
|
||||||
const sal_Int8 nAlpha(pIn[3]);
|
const double fAlpha((sal_uInt8)pIn[3]);
|
||||||
if( nAlpha )
|
if( fAlpha )
|
||||||
*pOut++ = rendering::RGBColor(
|
*pOut++ = rendering::RGBColor(
|
||||||
vcl::unotools::toDoubleColor(pIn[2]/nAlpha),
|
pIn[2]/fAlpha,
|
||||||
vcl::unotools::toDoubleColor(pIn[1]/nAlpha),
|
pIn[1]/fAlpha,
|
||||||
vcl::unotools::toDoubleColor(pIn[0]/nAlpha));
|
pIn[0]/fAlpha);
|
||||||
else
|
else
|
||||||
*pOut++ = rendering::RGBColor(0,0,0);
|
*pOut++ = rendering::RGBColor(0,0,0);
|
||||||
pIn += 4;
|
pIn += 4;
|
||||||
@@ -1819,13 +1819,13 @@ namespace cairocanvas
|
|||||||
rendering::ARGBColor* pOut( aRes.getArray() );
|
rendering::ARGBColor* pOut( aRes.getArray() );
|
||||||
for( sal_Size i=0; i<nLen; i+=4 )
|
for( sal_Size i=0; i<nLen; i+=4 )
|
||||||
{
|
{
|
||||||
const sal_Int8 nAlpha(pIn[3]);
|
const double fAlpha((sal_uInt8)pIn[3]);
|
||||||
if( nAlpha )
|
if( fAlpha )
|
||||||
*pOut++ = rendering::ARGBColor(
|
*pOut++ = rendering::ARGBColor(
|
||||||
vcl::unotools::toDoubleColor(nAlpha),
|
fAlpha/255.0,
|
||||||
vcl::unotools::toDoubleColor(pIn[2]/nAlpha),
|
pIn[2]/fAlpha,
|
||||||
vcl::unotools::toDoubleColor(pIn[1]/nAlpha),
|
pIn[1]/fAlpha,
|
||||||
vcl::unotools::toDoubleColor(pIn[0]/nAlpha));
|
pIn[0]/fAlpha);
|
||||||
else
|
else
|
||||||
*pOut++ = rendering::ARGBColor(0,0,0,0);
|
*pOut++ = rendering::ARGBColor(0,0,0,0);
|
||||||
pIn += 4;
|
pIn += 4;
|
||||||
|
Reference in New Issue
Block a user