26 const sal_Int32 nW = pWriteAccess->Width();
27 const sal_Int32 nH = pWriteAccess->Height();
28 std::vector<sal_uInt8> aMapR(256);
29 std::vector<sal_uInt8> aMapG(256);
30 std::vector<sal_uInt8> aMapB(256);
38 for (nX = 0; nX < 256; ++nX)
40 aMapR[nX] =
MinMax((nX + cR) / 2, 0, 255);
41 aMapG[nX] =
MinMax((nX + cG) / 2, 0, 255);
42 aMapB[nX] =
MinMax((nX + cB) / 2, 0, 255);
45 if (pWriteAccess->HasPalette())
47 for (sal_uInt16
i = 0,
nCount = pWriteAccess->GetPaletteEntryCount();
i <
nCount;
i++)
49 const BitmapColor& rCol = pWriteAccess->GetPaletteColor(
i);
53 pWriteAccess->SetPaletteColor(
i, aBitmapColor);
58 for (nY = 0; nY < nH; ++nY)
60 Scanline pScan = pWriteAccess->GetScanline(nY);
62 for (nX = 0; nX < nW; ++nX)
64 *pScan = aMapB[*pScan];
66 *pScan = aMapG[*pScan];
68 *pScan = aMapR[*pScan];
75 for (nY = 0; nY < nH; ++nY)
77 Scanline pScanline = pWriteAccess->GetScanline(nY);
78 for (nX = 0; nX < nW; ++nX)
80 aBitmapColor = pWriteAccess->GetPixelFromData(pScanline, nX);
84 pWriteAccess->SetPixelOnData(pScanline, nX, aBitmapColor);
virtual BitmapEx execute(BitmapEx const &rBitmapEx) const override
Bitmap GetBitmap(Color aTransparentReplaceColor) const
sal_uInt8 GetBlue() const
void SetGreen(sal_uInt8 nGreen)
void SetRed(sal_uInt8 nRed)
sal_uInt8 GetGreen() const
void SetBlue(sal_uInt8 nBlue)
This template handles BitmapAccess the RAII way.
std::enable_if< std::is_signed< T >::value||std::is_floating_point< T >::value, long >::type MinMax(T nVal, tools::Long nMin, tools::Long nMax)