30 SAL_INFO(
"vcl.gdi",
"BitmapFastScaleFilter::execute()");
34 const Size aSizePix(aBitmap.GetSizePixel());
39 SAL_INFO(
"vcl.gdi",
"New width: " << nNewWidth <<
"\nNew height: " << nNewHeight);
41 if (nNewWidth && nNewHeight)
47 Bitmap aNewBmp(
Size(nNewWidth, nNewHeight), aBitmap.getPixelFormat(),
53 const tools::Long nScanlineSize = pWriteAcc->GetScanlineSize();
56 if (nNewWidth && nNewHeight)
58 const double nWidth = pReadAcc->
Width();
59 const double nHeight = pReadAcc->
Height();
60 std::unique_ptr<tools::Long[]> pLutX(
new tools::Long[nNewWidth]);
61 std::unique_ptr<tools::Long[]> pLutY(
new tools::Long[nNewHeight]);
74 while (nActY < nNewHeight)
77 Scanline pScanline = pWriteAcc->GetScanline(nActY);
82 pWriteAcc->SetPixelOnData(
87 while ((nActY < nNewHeight1) && (pLutY[nActY + 1] == nMapY))
89 memcpy(pWriteAcc->GetScanline(nActY + 1), pWriteAcc->GetScanline(nActY),
105 aBitmap.ReassignWithSize(aNewBmp);
106 SAL_INFO(
"vcl.gdi",
"Bitmap size: " << aBitmap.GetSizePixel());
120 SAL_WARN_IF(!aMask.IsEmpty() && aBitmap.GetSizePixel() != aMask.GetSizePixel(),
"vcl",
121 "BitmapEx::Scale(): size mismatch for bitmap and alpha mask.");
tools::Long Height() const
virtual BitmapEx execute(BitmapEx const &rBitmapEx) const override
Scanline GetScanline(tools::Long nY) const
tools::Long FRound(double fVal)
tools::Long Width() const
TransparentType GetTransparentType() const
Bitmap GetBitmap(Color aTransparentReplaceColor) const
#define SAL_WARN_IF(condition, area, stream)
bool Scale(const Size &rNewSize, BmpScaleFlag nScaleFlag=BmpScaleFlag::Default)
Scale the bitmap.
const BitmapPalette & GetPalette() const
#define SAL_INFO(area, stream)
BitmapColor GetPixelFromData(const sal_uInt8 *pData, tools::Long nX) const
#define SAL_WARN(area, stream)