Represents a GDI+ bitmap image. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument. More...

#include "bitmap.h"

Inherits System::Drawing::Image.

Public Member Functions

ASPOSECPP_SHARED_API Bitmap (const SharedPtr< Image > &original)
 Constructs a new Bitmap object from the specified existing image. More...
 
ASPOSECPP_SHARED_API Bitmap (const SharedPtr< System::IO::Stream > &stream, bool useIcm=false)
 Constructs a new Bitmap object from the specified stream. More...
 
ASPOSECPP_SHARED_API Bitmap (const String &filename)
 Constructs a new Bitmap object from the specified file. More...
 
ASPOSECPP_SHARED_API Bitmap (const String &filename, bool useIcm)
 Constructs a new Bitmap object from the specified file. More...
 
ASPOSECPP_SHARED_API Bitmap (int width, int height, Imaging::PixelFormat format=Imaging::PixelFormat::Format32bppArgb)
 Constructs a new Bitmap object that represents a bitmap image with the specified width, height, pixel format and pixel data. More...
 
ASPOSECPP_SHARED_API Bitmap (const SharedPtr< Image > &original, const Size &size)
 Constructs a new Bitmap object from the specified existing image, scaled to the specified size. More...
 
ASPOSECPP_SHARED_API Bitmap (const SharedPtr< Image > &original, int width, int height)
 Constructs a new Bitmap object from the specified existing image with width and height scaled to the specified values. More...
 
 MEMBER_FUNCTION_MAKE_OBJECT (Bitmap, CODEPORTING_ARGS(const SharedPtr< Image > &original, int width, int height), CODEPORTING_ARGS(original, width, height))
 
virtual ASPOSECPP_SHARED_API int get_Width () const override
 Returns the width of the image in pixels. More...
 
virtual ASPOSECPP_SHARED_API int get_Height () const override
 Returns the height of the image in pixels. More...
 
virtual ASPOSECPP_SHARED_API Imaging::ImageFormatPtr get_RawFormat () const override
 Returns the file format of the image represented by the current object. More...
 
virtual ASPOSECPP_SHARED_API Imaging::PixelFormat get_PixelFormat () const override
 Returns the pixel format of the image represented by the current object. More...
 
virtual ASPOSECPP_SHARED_API Imaging::ColorPalettePtr get_Palette () const override
 Returns the color palette used by the image represented by the current object. More...
 
ASPOSECPP_SHARED_API void set_Palette (Imaging::ColorPalettePtr value) override
 Sets the color palette used by the image represented by the current object. More...
 
ASPOSECPP_SHARED_API void SetResolution (float xDpi, float yDpi)
 Sets the resolution of the image. More...
 
ASPOSECPP_SHARED_API void SetPixel (int x, int y, Color color)
 Sets the color of the specified pixel in the bitmap image represented by the current object. More...
 
ASPOSECPP_SHARED_API Imaging::BitmapDataPtr LockBits (const Rectangle &rect, Imaging::ImageLockMode flags, Imaging::PixelFormat format)
 Locks a Bitmap into system memory. More...
 
ASPOSECPP_SHARED_API Imaging::BitmapDataPtr LockBits (const Rectangle &rect, Imaging::ImageLockMode flags, Imaging::PixelFormat format, const Imaging::BitmapDataPtr &bitmap_data)
 Locks a Bitmap into system memory. More...
 
ASPOSECPP_SHARED_API void UnlockBits (const Imaging::BitmapDataPtr &bitmap_data)
 Unlocks the specified bitmap from system memory. More...
 
ASPOSECPP_SHARED_API Color GetPixel (int x, int y)
 Returns the color of the specified pixel. More...
 
ASPOSECPP_SHARED_API void MakeTransparent (Color transparent_color=Color::get_LightGray())
 Changes the color of all pixels with the specified color to transparent. More...
 
ASPOSECPP_SHARED_API IntPtr GetHbitmap ()
 Creates a GDI bitmap object from the bitmap represented by the current object. More...
 
virtual ASPOSECPP_SHARED_API SharedPtr< ImageClone () override
 Creates a copy of the current object. More...
 
ASPOSECPP_SHARED_API SharedPtr< BitmapClone (Rectangle rect, Imaging::PixelFormat format)
 Creates a Bitmap object that represents a copy of a region of the bitmap image represented by the current object. More...
 
ASPOSECPP_SHARED_API SharedPtr< BitmapClone (RectangleF rect, Imaging::PixelFormat format)
 Creates a Bitmap object that represents a copy of a region of the bitmap image represented by the current object. More...
 
virtual ASPOSECPP_SHARED_API void RotateFlip (RotateFlipType rotate_flip_type) override
 Rotates image to multiple of 90 degrees and flips. More...
 
virtual ASPOSECPP_SHARED_API const SkBitmap * GetSkBitmap () const override
 Returns a raw pointer to the underlying SkBitmap object. More...
 
virtual ASPOSECPP_SHARED_API bool IsMultiImage () const override
 Returns whether the original format is a multi-image. More...
 
ASPOSECPP_SHARED_API void PremultipleColors ()
 Premultiplies the colors of the pixels of the image represented by the current object. More...
 
ASPOSECPP_SHARED_API bool BeginPixelProcessing (bool update_colors=true)
 Enables pixel processing mode. More...
 
ASPOSECPP_SHARED_API bool EndPixelProcessing (bool update_colors=true)
 Disables pixel processing mode. More...
 
ASPOSECPP_SHARED_API ArrayPtr< uint8_t > ComputeHash ()
 Computes the SHA1 hash value. More...
 
- Public Member Functions inherited from System::Drawing::Image
ASPOSECPP_SHARED_API void Save (const String &filename)
 Saves the image represented by the current object to the specified file in PNG format. More...
 
ASPOSECPP_SHARED_API void Save (const String &filename, const Imaging::ImageFormatPtr &format)
 Saves the image represented by the current object to the specified file in the specified format. More...
 
ASPOSECPP_SHARED_API void Save (const SharedPtr< System::IO::Stream > &stream, const Imaging::ImageFormatPtr &format)
 Saves the image represented by the current object to the specified stream in the specified format. More...
 
ASPOSECPP_SHARED_API void Save (const String &filename, const Imaging::ImageCodecInfoPtr &encoder, const Imaging::EncoderParametersPtr &encoder_params)
 Saves the image represented by the current object to the specified file using the specified encoder and encoder parameters. More...
 
ASPOSECPP_SHARED_API void Save (const SharedPtr< System::IO::Stream > &stream, const Imaging::ImageCodecInfoPtr &encoder, const Imaging::EncoderParametersPtr &encoder_params)
 Saves the image represented by the current object to the specified stream using the specified encoder and encoder parameters. More...
 
ASPOSECPP_SHARED_API void SaveAdd (const Imaging::EncoderParametersPtr &encoder_params)
 Adds a frame to the file or stream specified in a previous call to the Save() method. More...
 
ASPOSECPP_SHARED_API void SaveAdd (const SharedPtr< Image > &image, const Imaging::EncoderParametersPtr &encoder_params)
 Adds a frame to the file or stream specified in a previous call to the Save() method. More...
 
virtual ASPOSECPP_SHARED_API ArrayPtr< int > get_PropertyIdList () const
 Gets IDs of the property items stored in this image. More...
 
ASPOSECPP_SHARED_API RectangleF GetBounds (GraphicsUnit &page_unit)
 Returns the image bounds in the specified measurement units. More...
 
virtual int32_t get_Flags () const
 Returns a bit-wise combination of ImageFlags enum values that represents the attributes of the image. More...
 
ASPOSECPP_SHARED_API Size get_Size () const
 Returns a Size object that represents the width and height of the image in pixels. More...
 
virtual ASPOSECPP_SHARED_API System::SharedPtr< System::Objectget_Tag () const
 Gets an object that provides additional data about the image. More...
 
virtual ASPOSECPP_SHARED_API void set_Tag (const System::SharedPtr< System::Object > tag)
 Sets an object that provides additional data about the image. More...
 
ASPOSECPP_SHARED_API float get_HorizontalResolution () const
 Returns the horizontal resolution of the image represented by the current object in pixels per inch. More...
 
ASPOSECPP_SHARED_API float get_VerticalResolution () const
 Returns the vertical resolution of the image represented by the current object in pixels per inch. More...
 
ASPOSECPP_SHARED_API ArrayPtr< Guidget_FrameDimensionsList () const
 Returns an array of GUIDs that represent the dimensions of frames within the image represented by the current object. More...
 
ASPOSECPP_SHARED_API int GetFrameCount (const Imaging::FrameDimensionPtr &dimension)
 Returns the number of frames of the specified frame dimension. More...
 
ASPOSECPP_SHARED_API int SelectActiveFrame (const Imaging::FrameDimensionPtr &dimension, int frameIndex)
 Selects the specified frame. More...
 
virtual ASPOSECPP_SHARED_API ArrayPtr< SharedPtr< Imaging::PropertyItem > > get_PropertyItems () const
 Gets all the property items(pieces of metadata) stored in this image. More...
 
void Dispose () override
 Releases all resources aquired by the current object. More...
 
ASPOSECPP_SHARED_API SharedPtr< ImageGetThumbnailImage (int thumbWidth, int thumbHeight, Image::GetThumbnailImageAbort callback, IntPtr callbackData)
 Gets a thumbnail for this System::Drawing::Image object. More...
 
- Public Member Functions inherited from System::Object
ASPOSECPP_SHARED_API Object ()
 Creates object. Initializes all internal data structures. More...
 
virtual ASPOSECPP_SHARED_API ~Object ()
 Destroys object. Frees all internal data structures. More...
 
ASPOSECPP_SHARED_API Object (Object const &x)
 Copy constructor. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
Objectoperator= (Object const &x)
 Assignment operator. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
ObjectSharedRefAdded ()
 Increments shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int SharedRefRemovedSafe ()
 Decrements and returns shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int RemovedSharedRefs (int count)
 Decreases shared reference count by specified value. More...
 
Detail::SmartPtrCounter * WeakRefAdded ()
 Increments weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
void WeakRefRemoved ()
 Decrements weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
Detail::SmartPtrCounter * GetCounter ()
 Gets reference counter data structure associated with the object. More...
 
int SharedCount () const
 Gets current value of shared reference counter. More...
 
ASPOSECPP_SHARED_API void Lock ()
 Implements C# lock() statement locking. Call directly or use LockContext sentry object. More...
 
ASPOSECPP_SHARED_API void Unlock ()
 Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More...
 
virtual ASPOSECPP_SHARED_API bool Equals (ptr obj)
 Compares objects using C# Object.Equals semantics. More...
 
virtual ASPOSECPP_SHARED_API int32_t GetHashCode () const
 Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More...
 
virtual ASPOSECPP_SHARED_API String ToString () const
 Analog of C# Object.ToString() method. Enables converting custom objects to string. More...
 
virtual ASPOSECPP_SHARED_API ptr MemberwiseClone () const
 Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More...
 
virtual ASPOSECPP_SHARED_API const TypeInfoGetType () const
 Gets actual type of object. Analog of C# System.Object.GetType() call. More...
 
virtual ASPOSECPP_SHARED_API bool Is (const TypeInfo &targetType) const
 Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More...
 
virtual ASPOSECPP_SHARED_API void SetTemplateWeakPtr (uint32_t argument)
 Set n'th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode. More...
 
virtual ASPOSECPP_SHARED_API bool FastCast (const Details::FastRttiBase &helper, void **out_ptr) const
 For internal purposes only. More...
 
template<>
bool Equals (float const &objA, float const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 
template<>
bool Equals (double const &objA, double const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 
template<>
bool ReferenceEquals (String const &str, std::nullptr_t)
 Specialization of Object::ReferenceEquals for case of string and nullptr. More...
 
template<>
bool ReferenceEquals (String const &str1, String const &str2)
 Specialization of Object::ReferenceEquals for case of strings. More...
 

Static Public Member Functions

static ASPOSECPP_SHARED_API SharedPtr< BitmapConvertToARGBImage (const SharedPtr< Bitmap > &src_bmp)
 Creates a copy of the specified bitmap image with pixel format changed to Format32bppArgb. More...
 
- Static Public Member Functions inherited from System::Drawing::Image
static ASPOSECPP_SHARED_API SharedPtr< ImageFromStream (const SharedPtr< System::IO::Stream > &stream, bool use_embedded_color_management=false, bool validate_image_data=true)
 Creates an Image object from the specified stream. More...
 
static ASPOSECPP_SHARED_API SharedPtr< ImageFromFile (const String &filename, bool use_embedded_color_management=false)
 Creates an Image object from the specified file. More...
 
static ASPOSECPP_SHARED_API bool IsAlphaPixelFormat (Imaging::PixelFormat pixfmt)
 Determines if the specified pixel format contains alpha information. More...
 
static ASPOSECPP_SHARED_API int GetPixelFormatSize (Imaging::PixelFormat pixfmt)
 Returns the number of bits used to represent the color depth in the specified pixel format. More...
 
static ASPOSECPP_SHARED_API SharedPtr< BitmapFromHbitmap (IntPtr hbitmap)
 Constructs a Bitmap object from the specified GDI bitmap. More...
 
- Static Public Member Functions inherited from System::Object
static bool ReferenceEquals (ptr const &objA, ptr const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, T const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, std::nullptr_t)
 Reference-compares value type object with nullptr. More...
 
template<typename T1 , typename T2 >
static std::enable_if< IsSmartPtr< T1 >::value &&IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares reference type objects in C# style. More...
 
template<typename T1 , typename T2 >
static std::enable_if<!IsSmartPtr< T1 >::value &&!IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares value type objects in C# style. More...
 
static const TypeInfoType ()
 Implements C# typeof(System.Object) construct. More...
 

Protected Member Functions

ASPOSECPP_SHARED_API ~Bitmap () override
 Destructor. More...
 
ASPOSECPP_SHARED_API Bitmap (const SharedPtr< Bitmap > &original, Rectangle rect, Imaging::PixelFormat format)
 Constructs a Bitmap object that represents a copy of a region of the bitmap image represented by the specified Bitmap object. More...
 
 MEMBER_FUNCTION_MAKE_OBJECT (Bitmap, CODEPORTING_ARGS(const SharedPtr< Bitmap > &original, Rectangle rect, Imaging::PixelFormat format), CODEPORTING_ARGS(original, rect, format))
 
ASPOSECPP_SHARED_API bool GetSkBitmapFromArray (const ArrayPtr< uint8_t > &data)
 Assigns the bitmap image data from the specified byte array to the specfied SkBitmap object. More...
 
virtual ASPOSECPP_SHARED_API std::unique_ptr< SkCanvas > GetDrawingCanvas () const override
 Returns the drawing canvas object. More...
 
virtual ASPOSECPP_SHARED_API sk_sp< SkData > GetRawBytes (SkEncodedImageFormat encoder_type, int quality) override
 Saves an image represented by the current object in the specified format using the specified image quality level setting when encoding the image to the momory buffer. More...
 
virtual ASPOSECPP_SHARED_API const SkEncodedImageFormat GetSkEncodedFormat () const override
 Returns a value that specifies the format of the image represented by the current object. More...
 
virtual Imaging::PixelFormat GetOriginalFormat () const override
 Returns the original image format of the bitmap image represented by the current object. More...
 
virtual void Draw (SkCanvas *sk_canvas, const SkRect &dest_rect, const SkRect &src_rect, SkMatrix *matrix, SkFilterQuality quality, SkBlendMode blend_mode) const override
 Draws the specified region of the image represented by the current object to the specified region on the specified canvas. The source bitmap region is scaled and translated to fill the destination region. More...
 
virtual void Draw (SkCanvas *sk_canvas, const SkRect &dest_rect, SkMatrix *matrix, SkFilterQuality quality, SkBlendMode blend_mode) const override
 Draws the the image represented by the current object to the specified region on the specified canvas. The source image is scaled and translated to fill the destination region. More...
 
virtual void Draw (SkCanvas *sk_canvas, ArrayPtr< PointF > dest_points, const SkRect &src_rect, SkMatrix *matrix, SkFilterQuality quality, SkBlendMode blend_mode) const override
 Draws the specified region of the image represented by the current object to the specified region on the specified canvas. The source bitmap region is scaled and translated to fill the destination region. More...
 
virtual void Draw (SkCanvas *sk_canvas, const System::Details::ArrayView< PointF > &dest_points, const SkRect &src_rect, SkMatrix *matrix, SkFilterQuality quality, SkBlendMode blend_mode) const override
 Draws the specified region of the image represented by the current object to the specified region on the specified canvas. The source bitmap region is scaled and translated to fill the destination region. More...
 
- Protected Member Functions inherited from System::Drawing::Image
ASPOSECPP_SHARED_API void InternalSave (const SharedPtr< System::IO::Stream > &stream, SkEncodedImageFormat encoder_type, Imaging::EncoderValue encoder_value=Imaging::EncoderValue::CompressionLZW, int pixel_format=32, int quality=s_default_save_quality)
 Saves the image represented by the current object to the specified stream in the specified format. More...
 
void InternalSave (const SharedPtr< IO::Stream > &stream, SkEncodedImageFormat encoder_type, const SaveOptions &options)
 Saves the image represented by the current object to the specified stream in the specified format. More...
 
void InternalSavePage (const SkBitmap *bitmap, const SaveOptions &options)
 Saves the bitmap as a part of a multipage image. More...
 
ASPOSECPP_SHARED_API SkEncodedImageFormat CheckOutputFormat (const Imaging::ImageFormatPtr &image_format) const
 Checks if the specified image format is supported and returns a SkEncodedFormat value that represents the specified image format. More...
 

Protected Attributes

std::unique_ptr< SkBitmap > m_sk_bitmap
 The underlying object that contains the binary image represented by the current object. More...
 
Detail::SkEncodedFormatHolder m_sk_encoded_format
 The format of the image represented by the current object. More...
 
Imaging::ImageLockMode m_lock_mode = (Imaging::ImageLockMode)0
 The current binary image lock mode. More...
 
- Protected Attributes inherited from System::Drawing::Image
Imaging::ColorPalettePtr m_palette
 The color palette used by the image represented by the current object. More...
 
float m_horizontal_resolution = 96.f
 The horizontal resolution of the image represented by the current object in pixels per inch. More...
 
float m_vertical_resolution = 96.f
 The vertical resolution of the image represented by the current object in pixels per inch. More...
 

Additional Inherited Members

- Public Types inherited from System::Drawing::Image
using GetThumbnailImageAbort = System::MulticastDelegate< bool()>
 A callback to cancel GetThumbnailImage execution. More...
 
- Public Types inherited from System::Object
typedef SmartPtr< Objectptr
 Alias for smart pointer type. More...
 
- Static Protected Member Functions inherited from System::Drawing::Image
static SkBitmap ConvertToGrayscale (const SkBitmap &src_bitmap)
 Converts 32bpp image to 8bpp grayscale image. More...
 
static SaveOptions ParseEncoderParameters (const Imaging::EncoderParametersPtr &encoder_params)
 Converts a set of encoder parameters into a SaveOptions structure. More...
 
static ASPOSECPP_SHARED_API SkEncodedImageFormat CheckOutputFormat (const Imaging::ImageCodecInfoPtr &encoder)
 Checks if the specified encoder is supported and returns a SkEncodedFormat value that represents an image format of the specified encoder. More...
 
static ASPOSECPP_SHARED_API SkEncodedImageFormat CheckOutputFormat (SkEncodedImageFormat encoded_format)
 Checks if the specified format is among supported. More...
 
static ASPOSECPP_SHARED_API bool IsWmf (const System::SharedPtr< System::IO::Stream > &stream)
 Determines if the data in the specified stream starts with the WMF format marker. More...
 
static ASPOSECPP_SHARED_API bool IsEmf (const System::SharedPtr< System::IO::Stream > &stream)
 Determines if the data in the specified stream starts with the EMF format marker. More...
 
- Static Protected Attributes inherited from System::Drawing::Image
static const int s_default_save_quality = 80
 Default quality level used when encoding an image. More...
 

Detailed Description

Represents a GDI+ bitmap image. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

Constructor & Destructor Documentation

◆ Bitmap() [1/8]

ASPOSECPP_SHARED_API System::Drawing::Bitmap::Bitmap ( const SharedPtr< Image > &  original)

Constructs a new Bitmap object from the specified existing image.

Parameters
originalThe existing image to create the bitmap image from

◆ Bitmap() [2/8]

ASPOSECPP_SHARED_API System::Drawing::Bitmap::Bitmap ( const SharedPtr< System::IO::Stream > &  stream,
bool  useIcm = false 
)

Constructs a new Bitmap object from the specified stream.

Parameters
streamA stream that contains image data
useIcmIGNORED

◆ Bitmap() [3/8]

ASPOSECPP_SHARED_API System::Drawing::Bitmap::Bitmap ( const String filename)

Constructs a new Bitmap object from the specified file.

Parameters
filenameA name of the file that contains image data

◆ Bitmap() [4/8]

ASPOSECPP_SHARED_API System::Drawing::Bitmap::Bitmap ( const String filename,
bool  useIcm 
)

Constructs a new Bitmap object from the specified file.

Parameters
filenameA name of the file that contains image data
useIcmIGNORED

◆ Bitmap() [5/8]

ASPOSECPP_SHARED_API System::Drawing::Bitmap::Bitmap ( int  width,
int  height,
Imaging::PixelFormat  format = Imaging::PixelFormat::Format32bppArgb 
)

Constructs a new Bitmap object that represents a bitmap image with the specified width, height, pixel format and pixel data.

Parameters
widthThe width of the image
heightThe height of the image
formatThe pixel format of the image

◆ Bitmap() [6/8]

ASPOSECPP_SHARED_API System::Drawing::Bitmap::Bitmap ( const SharedPtr< Image > &  original,
const Size size 
)

Constructs a new Bitmap object from the specified existing image, scaled to the specified size.

Parameters
originalThe existing image to create the bitmap image from
sizeThe size of the new image

◆ Bitmap() [7/8]

ASPOSECPP_SHARED_API System::Drawing::Bitmap::Bitmap ( const SharedPtr< Image > &  original,
int  width,
int  height 
)

Constructs a new Bitmap object from the specified existing image with width and height scaled to the specified values.

Parameters
originalThe existing image to create the bitmap image from
widthWidth of the new image
heightHeight of the new image

◆ ~Bitmap()

ASPOSECPP_SHARED_API System::Drawing::Bitmap::~Bitmap ( )
overrideprotected

Destructor.

◆ Bitmap() [8/8]

ASPOSECPP_SHARED_API System::Drawing::Bitmap::Bitmap ( const SharedPtr< Bitmap > &  original,
Rectangle  rect,
Imaging::PixelFormat  format 
)
protected

Constructs a Bitmap object that represents a copy of a region of the bitmap image represented by the specified Bitmap object.

Parameters
originalThe original image
rectThe rectangle that specifies the region of the original image to copy
formatThe pixel format for the bitmap

Member Function Documentation

◆ BeginPixelProcessing()

ASPOSECPP_SHARED_API bool System::Drawing::Bitmap::BeginPixelProcessing ( bool  update_colors = true)

Enables pixel processing mode.

Parameters
update_colorsSpecifies whether to update colors.

◆ Clone() [1/3]

virtual ASPOSECPP_SHARED_API SharedPtr<Image> System::Drawing::Bitmap::Clone ( )
overridevirtual

Creates a copy of the current object.

Returns
A copy of the current object.

Implements System::Drawing::Image.

◆ Clone() [2/3]

ASPOSECPP_SHARED_API SharedPtr<Bitmap> System::Drawing::Bitmap::Clone ( Rectangle  rect,
Imaging::PixelFormat  format 
)

Creates a Bitmap object that represents a copy of a region of the bitmap image represented by the current object.

Parameters
rectThe rectangle that specifies the region to copy
formatThe pixel format for the new Bitmap
Returns
The created Bitmap object

◆ Clone() [3/3]

ASPOSECPP_SHARED_API SharedPtr<Bitmap> System::Drawing::Bitmap::Clone ( RectangleF  rect,
Imaging::PixelFormat  format 
)

Creates a Bitmap object that represents a copy of a region of the bitmap image represented by the current object.

Parameters
rectThe rectangle that specifies the region to copy
formatThe pixel format for the new Bitmap
Returns
The created Bitmap object

◆ ComputeHash()

ASPOSECPP_SHARED_API ArrayPtr<uint8_t> System::Drawing::Bitmap::ComputeHash ( )

Computes the SHA1 hash value.

Returns
The computed hash code.

◆ ConvertToARGBImage()

static ASPOSECPP_SHARED_API SharedPtr<Bitmap> System::Drawing::Bitmap::ConvertToARGBImage ( const SharedPtr< Bitmap > &  src_bmp)
static

Creates a copy of the specified bitmap image with pixel format changed to Format32bppArgb.

Parameters
src_bmpThe original bitmap to copy
Returns
The copy of the original bitmap with the pixel format changed to Format32bppArgb

◆ Draw() [1/4]

virtual void System::Drawing::Bitmap::Draw ( SkCanvas *  sk_canvas,
const SkRect &  dest_rect,
const SkRect &  src_rect,
SkMatrix *  matrix,
SkFilterQuality  quality,
SkBlendMode  blend_mode 
) const
overrideprotectedvirtual

Draws the specified region of the image represented by the current object to the specified region on the specified canvas. The source bitmap region is scaled and translated to fill the destination region.

Parameters
sk_canvasThe canvas to draw on
dest_rectThe rectangle on the canvas to draw to
src_rectThe rectangle specifying the portion of the image to draw
matrixThe matrix that specifies how to traslate and scale the source image region
qualityThe quality of image interpolation
blend_modeSpecifies how the source colors are combined with the background colors

Implements System::Drawing::Image.

◆ Draw() [2/4]

virtual void System::Drawing::Bitmap::Draw ( SkCanvas *  sk_canvas,
const SkRect &  dest_rect,
SkMatrix *  matrix,
SkFilterQuality  quality,
SkBlendMode  blend_mode 
) const
overrideprotectedvirtual

Draws the the image represented by the current object to the specified region on the specified canvas. The source image is scaled and translated to fill the destination region.

Parameters
sk_canvasThe canvas to draw on
dest_rectThe rectangle in the canvas to draw to
matrixThe matrix that specifies how to traslate and scale the source image region
qualityThe quality of image interpolation
blend_modeSpecifies how the source colors are combined with the background colors

Implements System::Drawing::Image.

◆ Draw() [3/4]

virtual void System::Drawing::Bitmap::Draw ( SkCanvas *  sk_canvas,
ArrayPtr< PointF dest_points,
const SkRect &  src_rect,
SkMatrix *  matrix,
SkFilterQuality  quality,
SkBlendMode  blend_mode 
) const
overrideprotectedvirtual

Draws the specified region of the image represented by the current object to the specified region on the specified canvas. The source bitmap region is scaled and translated to fill the destination region.

Parameters
sk_canvasThe canvas to draw on
dest_pointsArray of 3 PointF objects representing points that define the rectangular region on the canvas to draw to
src_rectThe rectangle specifying the portion of the image to draw
matrixThe matrix that specifies how to traslate and scale the source image region
qualityThe quality of image interpolation
blend_modeSpecifies how the source colors are combined with the background colors

Implements System::Drawing::Image.

◆ Draw() [4/4]

virtual void System::Drawing::Bitmap::Draw ( SkCanvas *  sk_canvas,
const System::Details::ArrayView< PointF > &  dest_points,
const SkRect &  src_rect,
SkMatrix *  matrix,
SkFilterQuality  quality,
SkBlendMode  blend_mode 
) const
overrideprotectedvirtual

Draws the specified region of the image represented by the current object to the specified region on the specified canvas. The source bitmap region is scaled and translated to fill the destination region.

Parameters
sk_canvasThe canvas to draw on
dest_pointsArrayView of 3 PointF objects representing points that define the rectangular region on the canvas to draw to
src_rectThe rectangle specifying the portion of the image to draw
matrixThe matrix that specifies how to traslate and scale the source image region
qualityThe quality of image interpolation
blend_modeSpecifies how the source colors are combined with the background colors

Implements System::Drawing::Image.

◆ EndPixelProcessing()

ASPOSECPP_SHARED_API bool System::Drawing::Bitmap::EndPixelProcessing ( bool  update_colors = true)

Disables pixel processing mode.

Parameters
update_colorsSpecifies whether to update colors.

◆ get_Height()

virtual ASPOSECPP_SHARED_API int System::Drawing::Bitmap::get_Height ( ) const
overridevirtual

Returns the height of the image in pixels.

Implements System::Drawing::Image.

◆ get_Palette()

virtual ASPOSECPP_SHARED_API Imaging::ColorPalettePtr System::Drawing::Bitmap::get_Palette ( ) const
overridevirtual

Returns the color palette used by the image represented by the current object.

Reimplemented from System::Drawing::Image.

◆ get_PixelFormat()

virtual ASPOSECPP_SHARED_API Imaging::PixelFormat System::Drawing::Bitmap::get_PixelFormat ( ) const
overridevirtual

Returns the pixel format of the image represented by the current object.

Implements System::Drawing::Image.

◆ get_RawFormat()

virtual ASPOSECPP_SHARED_API Imaging::ImageFormatPtr System::Drawing::Bitmap::get_RawFormat ( ) const
overridevirtual

Returns the file format of the image represented by the current object.

Implements System::Drawing::Image.

◆ get_Width()

virtual ASPOSECPP_SHARED_API int System::Drawing::Bitmap::get_Width ( ) const
overridevirtual

Returns the width of the image in pixels.

Implements System::Drawing::Image.

◆ GetDrawingCanvas()

virtual ASPOSECPP_SHARED_API std::unique_ptr<SkCanvas> System::Drawing::Bitmap::GetDrawingCanvas ( ) const
overrideprotectedvirtual

Returns the drawing canvas object.

Implements System::Drawing::Image.

◆ GetHbitmap()

ASPOSECPP_SHARED_API IntPtr System::Drawing::Bitmap::GetHbitmap ( )

Creates a GDI bitmap object from the bitmap represented by the current object.

Returns
A handle to the created GDI bitmap object.

◆ GetOriginalFormat()

virtual Imaging::PixelFormat System::Drawing::Bitmap::GetOriginalFormat ( ) const
inlineoverrideprotectedvirtual

Returns the original image format of the bitmap image represented by the current object.

Implements System::Drawing::Image.

◆ GetPixel()

ASPOSECPP_SHARED_API Color System::Drawing::Bitmap::GetPixel ( int  x,
int  y 
)

Returns the color of the specified pixel.

Parameters
xThe X coordinate of the pixel whose color to return
yThe Y coordinate of the pixel whose color to return
Returns
The color of the specified pixel

◆ GetRawBytes()

virtual ASPOSECPP_SHARED_API sk_sp<SkData> System::Drawing::Bitmap::GetRawBytes ( SkEncodedImageFormat  encoder_type,
int  quality 
)
overrideprotectedvirtual

Saves an image represented by the current object in the specified format using the specified image quality level setting when encoding the image to the momory buffer.

Parameters
encoder_typeThe image format to save the image in
qualityThe quality level setting used when encoding the image
Returns
An SkData object that represents a memory buffer to which the image was saved

Implements System::Drawing::Image.

◆ GetSkBitmap()

virtual ASPOSECPP_SHARED_API const SkBitmap* System::Drawing::Bitmap::GetSkBitmap ( ) const
overridevirtual

Returns a raw pointer to the underlying SkBitmap object.

Implements System::Drawing::Image.

◆ GetSkBitmapFromArray()

ASPOSECPP_SHARED_API bool System::Drawing::Bitmap::GetSkBitmapFromArray ( const ArrayPtr< uint8_t > &  data)
protected

Assigns the bitmap image data from the specified byte array to the specfied SkBitmap object.

Parameters
dataThe bitmap image data
Returns
True if the operation succeeded, otherwise -false

◆ GetSkEncodedFormat()

virtual ASPOSECPP_SHARED_API const SkEncodedImageFormat System::Drawing::Bitmap::GetSkEncodedFormat ( ) const
overrideprotectedvirtual

Returns a value that specifies the format of the image represented by the current object.

Implements System::Drawing::Image.

◆ IsMultiImage()

virtual ASPOSECPP_SHARED_API bool System::Drawing::Bitmap::IsMultiImage ( ) const
overridevirtual

Returns whether the original format is a multi-image.

Reimplemented from System::Drawing::Image.

◆ LockBits() [1/2]

ASPOSECPP_SHARED_API Imaging::BitmapDataPtr System::Drawing::Bitmap::LockBits ( const Rectangle rect,
Imaging::ImageLockMode  flags,
Imaging::PixelFormat  format 
)

Locks a Bitmap into system memory.

Parameters
rectA rectangle that specifies the region of the image to lock
flagsSpecifies the access level to the bitmap
formatThe data format of this bitmap
Returns
A shared pointer to a BitmapData object that contains information about the performed lock operation

◆ LockBits() [2/2]

ASPOSECPP_SHARED_API Imaging::BitmapDataPtr System::Drawing::Bitmap::LockBits ( const Rectangle rect,
Imaging::ImageLockMode  flags,
Imaging::PixelFormat  format,
const Imaging::BitmapDataPtr bitmap_data 
)

Locks a Bitmap into system memory.

Parameters
rectA rectangle that specifies the region of the image to lock
flagsSpecifies the access level to the bitmap
formatThe data format of this bitmap
bitmap_dataContains information about the lock operation
Returns
A shared pointer to a BitmapData object that contains information about the performed lock operation

◆ MakeTransparent()

ASPOSECPP_SHARED_API void System::Drawing::Bitmap::MakeTransparent ( Color  transparent_color = Color::get_LightGray())

Changes the color of all pixels with the specified color to transparent.

Parameters
transparent_colorThe color of the pixels whose color to change

◆ MEMBER_FUNCTION_MAKE_OBJECT() [1/2]

System::Drawing::Bitmap::MEMBER_FUNCTION_MAKE_OBJECT ( Bitmap  ,
CODEPORTING_ARGS(const SharedPtr< Image > &original, int width, int height)  ,
CODEPORTING_ARGS(original, width, height)   
)

◆ MEMBER_FUNCTION_MAKE_OBJECT() [2/2]

System::Drawing::Bitmap::MEMBER_FUNCTION_MAKE_OBJECT ( Bitmap  ,
CODEPORTING_ARGS(const SharedPtr< Bitmap > &original, Rectangle rect, Imaging::PixelFormat format)  ,
CODEPORTING_ARGS(original, rect, format)   
)
protected

◆ PremultipleColors()

ASPOSECPP_SHARED_API void System::Drawing::Bitmap::PremultipleColors ( )

Premultiplies the colors of the pixels of the image represented by the current object.

◆ RotateFlip()

virtual ASPOSECPP_SHARED_API void System::Drawing::Bitmap::RotateFlip ( RotateFlipType  rotate_flip_type)
overridevirtual

Rotates image to multiple of 90 degrees and flips.

Parameters
rotate_flip_typeThe type of rotation and/or flip operation

Reimplemented from System::Drawing::Image.

◆ set_Palette()

ASPOSECPP_SHARED_API void System::Drawing::Bitmap::set_Palette ( Imaging::ColorPalettePtr  value)
overridevirtual

Sets the color palette used by the image represented by the current object.

Parameters
valueThe value to set

Reimplemented from System::Drawing::Image.

◆ SetPixel()

ASPOSECPP_SHARED_API void System::Drawing::Bitmap::SetPixel ( int  x,
int  y,
Color  color 
)

Sets the color of the specified pixel in the bitmap image represented by the current object.

Parameters
xX coordinate of the pixel
yY coordinate of the pixel
colorThe new color to set

◆ SetResolution()

ASPOSECPP_SHARED_API void System::Drawing::Bitmap::SetResolution ( float  xDpi,
float  yDpi 
)

Sets the resolution of the image.

Parameters
xDpiThe new horizontal resolution in pixels per inch.
yDpiThe new vertical resolution in pixels per inch.

◆ UnlockBits()

ASPOSECPP_SHARED_API void System::Drawing::Bitmap::UnlockBits ( const Imaging::BitmapDataPtr bitmap_data)

Unlocks the specified bitmap from system memory.

Parameters
bitmap_dataAn object that contains information about the lock operation

Member Data Documentation

◆ m_lock_mode

Imaging::ImageLockMode System::Drawing::Bitmap::m_lock_mode = (Imaging::ImageLockMode)0
protected

The current binary image lock mode.

◆ m_sk_bitmap

std::unique_ptr<SkBitmap> System::Drawing::Bitmap::m_sk_bitmap
protected

The underlying object that contains the binary image represented by the current object.

◆ m_sk_encoded_format

Detail::SkEncodedFormatHolder System::Drawing::Bitmap::m_sk_encoded_format
protected

The format of the image represented by the current object.