20#ifndef INCLUDED_VCL_BITMAP_HXX
21#define INCLUDED_VCL_BITMAP_HXX
35#define GAMMA( _def_cVal, _def_InvGamma ) (static_cast<sal_uInt8>(MinMax(FRound(pow( _def_cVal/255.0,_def_InvGamma)*255.0),0,255)))
39template <
typename Arg,
typename Ret>
class Link;
67#define BMP_COL_TRANS Color( 252, 3, 251 )
90namespace basegfx {
class SystemDependentDataHolder; }
96 #elif defined( MACOSX ) || defined( IOS )
112 explicit Bitmap( std::shared_ptr<SalBitmap> xSalBitmap );
120 inline bool IsEmpty()
const;
123 inline const MapMode& GetPrefMapMode()
const;
124 inline void SetPrefMapMode(
const MapMode& rMapMode );
126 inline const Size& GetPrefSize()
const;
127 inline void SetPrefSize(
const Size& rSize );
129 Size GetSizePixel()
const;
132 inline sal_Int64 GetSizeBytes()
const;
133 bool HasGreyPalette8Bit()
const;
134 bool HasGreyPaletteAny()
const;
149 GetGreyPalette(
int nEntries );
203 sal_Int32 nDX, sal_Int32 nDY,
204 const Color* pInitColor =
nullptr );
231 const Bitmap* pBmpSrc =
nullptr );
233 bool CopyPixel_AlphaOptimized(
245 bool CombineOr(
const Bitmap& rMask );
265 const Color& rBackgroundColor );
325 static bool HasFastScale();
329 void AdaptBitCount(
Bitmap& rNew)
const;
357 Bitmap CreateMask(
const Color& rTransColor )
const;
469 const Color* pSearchColors,
470 const Color* rReplaceColors,
525 short nLuminancePercent,
526 short nContrastPercent = 0,
527 short nChannelRPercent = 0,
528 short nChannelGPercent = 0,
529 short nChannelBPercent = 0,
531 bool bInvert =
false,
532 bool msoBrightness =
false );
553 void RemoveBlendedStartColor(
567 SAL_DLLPRIVATE
void ReassignWithSize(
const Bitmap& rBitmap);
569 SAL_DLLPRIVATE
void ImplMakeUnique();
571 SAL_DLLPRIVATE
void ImplSetSalBitmap(
const std::shared_ptr<SalBitmap>& xImpBmp );
573 SAL_DLLPRIVATE
bool ImplMakeGreyscales();
587 SAL_DLLPRIVATE
bool ImplConvertDown8BPP(
Color const* pExtColor =
nullptr);
624 sal_Int64 aSizeInBytes = (aSizePixel.Width() * aSizePixel.Height() * aBitCount) / 8;
sal_uInt64 BitmapChecksum
sal_Int64 GetSizeBytes() const
const std::shared_ptr< SalBitmap > & ImplGetSalBitmap() const
void SetPrefMapMode(const MapMode &rMapMode)
const MapMode & GetPrefMapMode() const
Size GetSizePixel() const
bool operator!=(const Bitmap &rBitmap) const
vcl::ScopedBitmapAccess< BitmapReadAccess, Bitmap, &Bitmap::AcquireReadAccess > ScopedReadAccess
void SetPrefSize(const Size &rSize)
const Size & GetPrefSize() const
vcl::ScopedBitmapAccess< BitmapInfoAccess, Bitmap, &Bitmap::AcquireInfoAccess > ScopedInfoAccess
vcl::PixelFormat getPixelFormat() const
std::shared_ptr< SalBitmap > mxSalBmp
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
PixelFormat
Pixel format of the bitmap in bits per pixel.
constexpr sal_uInt16 pixelFormatBitCount(PixelFormat ePixelFormat)
bool operator==(const ItalicMatrix &a, const ItalicMatrix &b)