System::Drawing::Image Class Referenceabstract

Inherits System::IDisposable.

Inherited by System::Drawing::Bitmap, and System::Drawing::Imaging::Metafile.

Public Types

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...
 

Public Member Functions

ASPOSECPP_SHARED_API void Save (const String &filename)
 
ASPOSECPP_SHARED_API void Save (const String &filename, const Imaging::ImageFormatPtr &format)
 
ASPOSECPP_SHARED_API void Save (const SharedPtr< System::IO::Stream > &stream, const Imaging::ImageFormatPtr &format)
 
ASPOSECPP_SHARED_API void Save (const String &filename, const Imaging::ImageCodecInfoPtr &encoder, const Imaging::EncoderParametersPtr &encoder_params)
 
ASPOSECPP_SHARED_API void Save (const SharedPtr< System::IO::Stream > &stream, const Imaging::ImageCodecInfoPtr &encoder, const Imaging::EncoderParametersPtr &encoder_params)
 
ASPOSECPP_SHARED_API void SaveAdd (const Imaging::EncoderParametersPtr &encoder_params)
 
ASPOSECPP_SHARED_API void SaveAdd (const SharedPtr< Image > &image, const Imaging::EncoderParametersPtr &encoder_params)
 
virtual ASPOSECPP_SHARED_API SharedPtr< ImageClone ()=0
 
virtual ASPOSECPP_SHARED_API void RotateFlip (RotateFlipType rotate_flip_type)
 
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)
 
virtual ASPOSECPP_SHARED_API int get_Width () const =0
 Returns the width of the image in pixels. More...
 
virtual ASPOSECPP_SHARED_API int get_Height () const =0
 Returns the height of the image in pixels. More...
 
virtual int32_t get_Flags () const
 
ASPOSECPP_SHARED_API Size get_Size () const
 
virtual ASPOSECPP_SHARED_API Imaging::ImageFormatPtr get_RawFormat () const =0
 Returns the file format of the image represented by the current object. More...
 
virtual ASPOSECPP_SHARED_API Imaging::PixelFormat get_PixelFormat () const =0
 Returns the pixel format of the image represented by the current object. 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...
 
virtual ASPOSECPP_SHARED_API Imaging::ColorPalettePtr get_Palette () const
 Returns the color palette used by the image represented by the current object. More...
 
virtual ASPOSECPP_SHARED_API void set_Palette (Imaging::ColorPalettePtr value)
 
virtual ASPOSECPP_SHARED_API bool IsMultiImage () const
 Returns whether the original format is a multi-image. More...
 
ASPOSECPP_SHARED_API ArrayPtr< Guidget_FrameDimensionsList () const
 
ASPOSECPP_SHARED_API int GetFrameCount (const Imaging::FrameDimensionPtr &dimension)
 
ASPOSECPP_SHARED_API int SelectActiveFrame (const Imaging::FrameDimensionPtr &dimension, int frameIndex)
 
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...
 
virtual ASPOSECPP_SHARED_API const SkBitmap * GetSkBitmap () const =0
 Returns an underlying SkBitmap object. More...
 
ASPOSECPP_SHARED_API SharedPtr< ImageGetThumbnailImage (int thumbWidth, int thumbHeight, Image::GetThumbnailImageAbort callback, IntPtr callbackData)
 
- 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)
 
template<>
bool Equals (double const &objA, double const &objB)
 
template<>
bool ReferenceEquals (String const &str, std::nullptr_t)
 
template<>
bool ReferenceEquals (String const &str1, String const &str2)
 

Static Public Member Functions

static ASPOSECPP_SHARED_API SharedPtr< ImageFromStream (const SharedPtr< System::IO::Stream > &stream, bool use_embedded_color_management=false, bool validate_image_data=1)
 
static ASPOSECPP_SHARED_API SharedPtr< ImageFromFile (const String &filename, bool use_embedded_color_management=false)
 
static ASPOSECPP_SHARED_API bool IsAlphaPixelFormat (Imaging::PixelFormat pixfmt)
 
static ASPOSECPP_SHARED_API int GetPixelFormatSize (Imaging::PixelFormat pixfmt)
 
static ASPOSECPP_SHARED_API SharedPtr< BitmapFromHbitmap (IntPtr hbitmap)
 
- 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...
 

Detailed Description

A base class for System::Drawing::Bitmap and System::Drawing::Metafile classes providing basic functionality. 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.

Member Typedef Documentation

◆ GetThumbnailImageAbort

using System::Drawing::Image::GetThumbnailImageAbort = System::MulticastDelegate<bool()>

A callback to cancel GetThumbnailImage execution.

Member Function Documentation

◆ Clone()

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

Creates a copy of the current object.

Returns
A copy of the current object.

Implemented in System::Drawing::Bitmap, and System::Drawing::Imaging::Metafile.

◆ Dispose()

void System::Drawing::Image::Dispose ( )
inlineoverridevirtual

Releases all resources aquired by the current object.

Reimplemented from System::IDisposable.

◆ FromFile()

static ASPOSECPP_SHARED_API SharedPtr<Image> System::Drawing::Image::FromFile ( const String filename,
bool  use_embedded_color_management = false 
)
static

Creates an Image object from the specified file.

Parameters
filenameA name of the file that contains image data
use_embedded_color_managementIGNORED
Returns
A shared pointer to the created Image object.

◆ FromHbitmap()

static ASPOSECPP_SHARED_API SharedPtr<Bitmap> System::Drawing::Image::FromHbitmap ( IntPtr  hbitmap)
static

Constructs a Bitmap object from the specified GDI bitmap.

Parameters
hbitmapA handle to a GDI bitmap from which to create a Bitmap object
Returns
A shared pointer to the created Bitmap object

◆ FromStream()

static ASPOSECPP_SHARED_API SharedPtr<Image> System::Drawing::Image::FromStream ( const SharedPtr< System::IO::Stream > &  stream,
bool  use_embedded_color_management = false,
bool  validate_image_data = 1 
)
static

Creates an Image object from the specified stream.

Parameters
streamA stream that contains image data
use_embedded_color_managementIGNORED
validate_image_dataIGNORED
Returns
A shared pointer to the created Image object.

◆ get_Flags()

virtual int32_t System::Drawing::Image::get_Flags ( ) const
virtual

Returns a bit-wise combination of ImageFlags enum values that represents the attributes of the image.

◆ get_FrameDimensionsList()

ASPOSECPP_SHARED_API ArrayPtr<Guid> System::Drawing::Image::get_FrameDimensionsList ( ) const

Returns an array of GUIDs that represent the dimensions of frames within the image represented by the current object.

◆ get_Height()

virtual ASPOSECPP_SHARED_API int System::Drawing::Image::get_Height ( ) const
pure virtual

Returns the height of the image in pixels.

Implemented in System::Drawing::Bitmap, and System::Drawing::Imaging::Metafile.

◆ get_HorizontalResolution()

ASPOSECPP_SHARED_API float System::Drawing::Image::get_HorizontalResolution ( ) const

Returns the horizontal resolution of the image represented by the current object in pixels per inch.

◆ get_Palette()

virtual ASPOSECPP_SHARED_API Imaging::ColorPalettePtr System::Drawing::Image::get_Palette ( ) const
virtual

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

Reimplemented in System::Drawing::Bitmap.

◆ get_PixelFormat()

virtual ASPOSECPP_SHARED_API Imaging::PixelFormat System::Drawing::Image::get_PixelFormat ( ) const
pure virtual

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

Implemented in System::Drawing::Bitmap, and System::Drawing::Imaging::Metafile.

◆ get_PropertyIdList()

virtual ASPOSECPP_SHARED_API ArrayPtr<int> System::Drawing::Image::get_PropertyIdList ( ) const
virtual

Gets IDs of the property items stored in this image.

◆ get_PropertyItems()

virtual ASPOSECPP_SHARED_API ArrayPtr<SharedPtr<Imaging::PropertyItem> > System::Drawing::Image::get_PropertyItems ( ) const
virtual

Gets all the property items(pieces of metadata) stored in this image.

◆ get_RawFormat()

virtual ASPOSECPP_SHARED_API Imaging::ImageFormatPtr System::Drawing::Image::get_RawFormat ( ) const
pure virtual

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

Implemented in System::Drawing::Bitmap, and System::Drawing::Imaging::Metafile.

◆ get_Size()

ASPOSECPP_SHARED_API Size System::Drawing::Image::get_Size ( ) const

Returns a Size object that represents the width and height of the image in pixels.

◆ get_Tag()

virtual ASPOSECPP_SHARED_API System::SharedPtr<System::Object> System::Drawing::Image::get_Tag ( ) const
virtual

Gets an object that provides additional data about the image.

◆ get_VerticalResolution()

ASPOSECPP_SHARED_API float System::Drawing::Image::get_VerticalResolution ( ) const

Returns the vertical resolution of the image represented by the current object in pixels per inch.

◆ get_Width()

virtual ASPOSECPP_SHARED_API int System::Drawing::Image::get_Width ( ) const
pure virtual

Returns the width of the image in pixels.

Implemented in System::Drawing::Bitmap, and System::Drawing::Imaging::Metafile.

◆ GetBounds()

ASPOSECPP_SHARED_API RectangleF System::Drawing::Image::GetBounds ( GraphicsUnit page_unit)

Returns the image bounds in the specified measurement units.

Parameters
page_unitMeasurement unit
Returns
An instance of RectangleF class that represents the image bound in the specified measurement units

◆ GetFrameCount()

ASPOSECPP_SHARED_API int System::Drawing::Image::GetFrameCount ( const Imaging::FrameDimensionPtr dimension)

Returns the number of frames of the specified frame dimension.

Parameters
dimensionA frame dimension
Returns
The number of frames of the dimension frame dimension.

◆ GetPixelFormatSize()

static ASPOSECPP_SHARED_API int System::Drawing::Image::GetPixelFormatSize ( Imaging::PixelFormat  pixfmt)
static

Returns the number of bits used to represent the color depth in the specified pixel format.

Parameters
pixfmtA pixel format for which to determine the size
Returns
The color depth in pixfmt

◆ GetSkBitmap()

virtual ASPOSECPP_SHARED_API const SkBitmap* System::Drawing::Image::GetSkBitmap ( ) const
pure virtual

Returns an underlying SkBitmap object.

Implemented in System::Drawing::Bitmap.

◆ GetThumbnailImage()

ASPOSECPP_SHARED_API SharedPtr<Image> System::Drawing::Image::GetThumbnailImage ( int  thumbWidth,
int  thumbHeight,
Image::GetThumbnailImageAbort  callback,
IntPtr  callbackData 
)

Gets a thumbnail for this System::Drawing::Image object.

Parameters
thumbWidthA width of thumbnail
thumbHeightA heigth of thumbnail
callbackIgnored
callbackDataIgnored
Returns
A thumbnail for this System::Drawing::Image object

◆ IsAlphaPixelFormat()

static ASPOSECPP_SHARED_API bool System::Drawing::Image::IsAlphaPixelFormat ( Imaging::PixelFormat  pixfmt)
static

Determines if the specified pixel format contains alpha information.

Parameters
pixfmtA pixel format to test
Returns
True if pixfmt contains alpha information, otherwise - false

◆ IsMultiImage()

virtual ASPOSECPP_SHARED_API bool System::Drawing::Image::IsMultiImage ( ) const
virtual

Returns whether the original format is a multi-image.

Reimplemented in System::Drawing::Bitmap.

◆ RotateFlip()

virtual ASPOSECPP_SHARED_API void System::Drawing::Image::RotateFlip ( RotateFlipType  rotate_flip_type)
virtual

Rotate image to multiple of 90 degrees and flip.

Parameters
rotate_flip_typeType of rotation and flip.

Reimplemented in System::Drawing::Bitmap.

◆ Save() [1/5]

ASPOSECPP_SHARED_API void System::Drawing::Image::Save ( const String filename)

Saves the image represented by the current object to the specified file in PNG format.

Parameters
filenameThe name of the file to save the image to

◆ Save() [2/5]

ASPOSECPP_SHARED_API void System::Drawing::Image::Save ( const String filename,
const Imaging::ImageFormatPtr format 
)

Saves the image represented by the current object to the specified file in the specified format.

Parameters
filenameThe name of the file to save the image to
formatA format to save the image in

◆ Save() [3/5]

ASPOSECPP_SHARED_API void System::Drawing::Image::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.

Parameters
streamA stream to save the image to
formatA format to save the image in

◆ Save() [4/5]

ASPOSECPP_SHARED_API void System::Drawing::Image::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.

Parameters
filenameThe name of the file to save the image to
encoderThe encoder to use
encoder_paramsThe parameters of the encoder to use

◆ Save() [5/5]

ASPOSECPP_SHARED_API void System::Drawing::Image::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.

Parameters
streamA stream to save the image to
encoderThe encoder to use
encoder_paramsThe parameters of the encoder to used

◆ SaveAdd() [1/2]

ASPOSECPP_SHARED_API void System::Drawing::Image::SaveAdd ( const Imaging::EncoderParametersPtr encoder_params)

Adds a frame to the file or stream specified in a previous call to the Save() method.

Parameters
encoder_paramsThe parameters of the encoder to use

◆ SaveAdd() [2/2]

ASPOSECPP_SHARED_API void System::Drawing::Image::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.

Parameters
imageAn Image object that contains the frame to be added
encoder_paramsThe parameters of the encoder to use

◆ SelectActiveFrame()

ASPOSECPP_SHARED_API int System::Drawing::Image::SelectActiveFrame ( const Imaging::FrameDimensionPtr dimension,
int  frameIndex 
)

Selects the specified frame.

Parameters
dimensionThe dimension of the frame to select
frameIndexThe index of the frame to select returns Always 0

◆ set_Palette()

virtual ASPOSECPP_SHARED_API void System::Drawing::Image::set_Palette ( Imaging::ColorPalettePtr  value)
virtual

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

Parameters
valueThe value to set

Reimplemented in System::Drawing::Bitmap.

◆ set_Tag()

virtual ASPOSECPP_SHARED_API void System::Drawing::Image::set_Tag ( const System::SharedPtr< System::Object tag)
virtual

Sets an object that provides additional data about the image.