44 const tools::Long nMask111 = -1, nMask121 = 0, nMask131 = 1;
45 const tools::Long nMask211 = -2, nMask221 = 0, nMask231 = 2;
46 const tools::Long nMask311 = -1, nMask321 = 0, nMask331 = 1;
47 const tools::Long nMask112 = 1, nMask122 = 2, nMask132 = 1;
48 const tools::Long nMask212 = 0, nMask222 = 0, nMask232 = 0;
49 const tools::Long nMask312 = -1, nMask322 = -2, nMask332 = -1;
53 std::unique_ptr<long[]> pHMap(
new long[nWidth + 2]);
54 std::unique_ptr<long[]> pVMap(
new long[nHeight + 2]);
60 for (nX = 1; nX <= nWidth; nX++)
65 pHMap[nWidth + 1] = nWidth - 1;
69 for (nY = 1; nY <= nHeight; nY++)
74 pVMap[nHeight + 1] = nHeight - 1;
76 for (nY = 0; nY < nHeight; nY++)
88 Scanline pScanline = pWriteAcc->GetScanline(nY);
89 for (nX = 0; nX < nWidth; nX++)
93 nSum1 += nMask111 * nGrey11;
94 nSum2 += nMask112 * nGrey11;
96 nSum1 += nMask121 * nGrey12;
97 nSum2 += nMask122 * nGrey12;
99 nSum1 += nMask131 * nGrey13;
100 nSum2 += nMask132 * nGrey13;
102 nSum1 += nMask211 * nGrey21;
103 nSum2 += nMask212 * nGrey21;
105 nSum1 += nMask221 * nGrey22;
106 nSum2 += nMask222 * nGrey22;
108 nSum1 += nMask231 * nGrey23;
109 nSum2 += nMask232 * nGrey23;
111 nSum1 += nMask311 * nGrey31;
112 nSum2 += nMask312 * nGrey31;
114 nSum1 += nMask321 * nGrey32;
115 nSum2 += nMask322 * nGrey32;
117 nSum1 += nMask331 * nGrey33;
118 nSum2 += nMask332 * nGrey33;
121 sqrt(static_cast<double>(nSum1 * nSum1 + nSum2 * nSum2)));
123 aGrey.
SetIndex(~static_cast<sal_uInt8>(
125 pWriteAcc->SetPixelOnData(pScanline, nX, aGrey);
127 if (nX < (nWidth - 1))
155 const Size aPrefSize(aBitmap.GetPrefSize());
159 aBitmap.SetPrefMapMode(
aMap);
160 aBitmap.SetPrefSize(aPrefSize);
sal_uInt8 GetIndex() const
HashMap_OWString_Interface aMap
virtual BitmapEx execute(BitmapEx const &rBitmapEx) const override
void SetIndex(sal_uInt8 cIndex)
Bitmap GetBitmap(Color aTransparentReplaceColor) const
const BitmapPalette & GetPalette() const
SAL_DLLPRIVATE bool ImplMakeGreyscales()
BitmapColor GetPixel(tools::Long nY, tools::Long nX) const