Asposecpplib
System::Drawing::Imaging::Metafile Class Reference

Represents a graphic metafile. 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...

Inherits System::Drawing::Image.

Public Member Functions

 Metafile (const System::String &filename)
 NOT IMPLEMENTED. More...
 
 Metafile (const SharedPtr< System::IO::Stream > &stream)
 NOT IMPLEMENTED. More...
 
 Metafile (const SharedPtr< System::IO::Stream > &stream, IntPtr hdc, EmfType type)
 NOT IMPLEMENTED. More...
 
 Metafile (const SharedPtr< System::IO::Stream > &stream, IntPtr hdc)
 NOT IMPLEMENTED. More...
 
 Metafile (const SharedPtr< System::IO::Stream > &stream, IntPtr hdc, Rectangle rect, MetafileFrameUnit frameUnit, EmfType type)
 NOT IMPLEMENTED. More...
 
 Metafile (const SharedPtr< System::IO::Stream > &stream, IntPtr hdc, RectangleF rect, MetafileFrameUnit frameUnit, EmfType type)
 NOT IMPLEMENTED. More...
 
 Metafile (IntPtr, EmfType)
 NOT IMPLEMENTED. More...
 
virtual ~Metafile ()
 Destructor. More...
 
SharedPtr< MetafileHeaderGetMetafileHeader ()
 Returns a header associated with the current object. More...
 
IntPtr GetHenhmetafile ()
 NOT IMPLEMENTED. More...
 
virtual int get_Width () const override
 Returns the width of the image in pixels. More...
 
virtual int get_Height () const override
 Returns the heights of the image in pixels. More...
 
virtual Imaging::ImageFormatPtr get_RawFormat () const override
 Returns a value the indicates the image format. More...
 
virtual Imaging::PixelFormat get_PixelFormat () const override
 Returns a value the indicates the pixel format. More...
 
virtual SharedPtr< ImageClone () override
 Returns a copy of the current object. More...
 
- Public Member Functions inherited from System::Drawing::Image
void Save (const String &filename)
 Saves the image represented by the current object to the specified file in PNG format. More...
 
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...
 
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...
 
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...
 
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...
 
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...
 
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 void RotateFlip (RotateFlipType rotate_flip_type)
 Rotate image to multiple of 90 degrees and flip. More...
 
virtual ArrayPtr< int > get_PropertyIdList () const
 Gets IDs of the property items stored in this image. More...
 
RectangleF GetBounds (GraphicsUnit &page_unit)
 Returns the image bounds in the specified measurement units. More...
 
virtual Imaging::ImageFlags get_Flags () const
 Returns a bit-wise combination of ImageFlags enum values that represents the attributes of the image. More...
 
Size get_Size () const
 Returns a Size object that represents the width and height of the image in pixels. More...
 
float get_HorizontalResolution () const
 Returns the horizontal resolution of the image represented by the current object in pixels per inch. More...
 
float get_VerticalResolution () const
 Returns the vertical resolution of the image represented by the current object in pixels per inch. More...
 
virtual Imaging::ColorPalettePtr get_Palette () const
 Returns the color palette used by the image represented by the current object. More...
 
virtual void set_Palette (Imaging::ColorPalettePtr value)
 Sets the color palette used by the image represented by the current object. More...
 
virtual bool IsMultiImage () const
 Returns whether the original format is a multi-image. More...
 
ArrayPtr< Guidget_FrameDimensionsList () const
 Returns an array of GUIDs that represent the dimensions of frames within the image represented by the current object. More...
 
int GetFrameCount (const Imaging::FrameDimensionPtr &dimension)
 Returns the number of frames of the specified frame dimension. More...
 
int SelectActiveFrame (const Imaging::FrameDimensionPtr &dimension, int frameIndex)
 Selects the specified frame. More...
 
virtual 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...
 
- Public Member Functions inherited from System::Object
 Object ()
 Creates object. Initializes all internal data structures. More...
 
virtual ~Object ()
 Destroys object. Frees all internal data structures. More...
 
 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...
 
void Lock ()
 Implements C# lock() statement locking. Call directly or use LockContext sentry object. More...
 
void Unlock ()
 Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More...
 
virtual bool Equals (ptr obj)
 Compares objects using C# Object.Equals semantics. More...
 
virtual int32_t GetHashCode () const
 Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More...
 
virtual String ToString () const
 Analog of C# Object.ToString() method. Enables converting custom objects to string. More...
 
virtual ptr MemberwiseClone () const
 Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More...
 
virtual const TypeInfoGetType () const
 Gets actual type of object. Analog of C# System.Object.GetType() call. More...
 
virtual bool Is (const TypeInfo &targetType) const
 Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More...
 
virtual 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 bool FastCast (const Details::FastRttiBase &helper, void **out_ptr) const
 For internal purposes only. 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...
 

Protected Member Functions

virtual std::unique_ptr< SkCanvas > GetDrawingCanvas () const override
 NOT IMPLEMENTED. More...
 
virtual sk_sp< SkData > GetRawBytes (SkEncodedImageFormat encoder_type, int quality) override
 NOT IMPLEMENTED. More...
 
virtual const SkBitmap * GetSkBitmap () const override
 Returns an underlying SkBitmap object. More...
 
virtual const SkEncodedImageFormat GetSkEncodedFormat () const override
 Returns an underlying SkEncodedFormat 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 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 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 to the specified region on the specified canvas. The source bitmap region is scaled and translated to fill the destination region. More...
 
virtual Imaging::PixelFormat GetOriginalFormat () const override
 Returns the original image format. More...
 
 Metafile (const SharedPtr< System::IO::Stream > &stream, const Drawing::Imaging::ImageFormatPtr &image_format)
 Constructs a new instance of Metafile class. More...
 
- Protected Member Functions inherited from System::Drawing::Image
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...
 
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

Drawing::Imaging::ImageFormatPtr m_image_format
 Image format. More...
 
Rectangle m_bounds
 A bounding rectangle of the image. More...
 
int m_width
 The width of the image. More...
 
int m_height
 The hegiht of the image. More...
 
std::unique_ptr< SkBitmap > m_dummy_sk_bitmap
 An SkBitmap object representing the image. More...
 
ArrayPtr< uint8_t > m_metafile_data
 
- 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::Object
typedef SmartPtr< Objectptr
 Alias for smart pointer type. More...
 
- Static Public Member Functions inherited from System::Drawing::Image
static 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 SharedPtr< ImageFromFile (const String &filename, bool use_embedded_color_management=false)
 Creates an Image object from the specified file. More...
 
static bool IsAlphaPixelFormat (Imaging::PixelFormat pixfmt)
 Determines if the specified pixel format contains alpha information. More...
 
static int GetPixelFormatSize (Imaging::PixelFormat pixfmt)
 Returns the number of bits used to represent the color depth in the specified pixel format. More...
 
static 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...
 
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...
 
- 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 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 SkEncodedImageFormat CheckOutputFormat (SkEncodedImageFormat encoded_format)
 Checks if the specified format is among supported. More...
 
static 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 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 graphic metafile. 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

◆ Metafile() [1/8]

System::Drawing::Imaging::Metafile::Metafile ( const System::String filename)

NOT IMPLEMENTED.

Exceptions
NotImplementedExceptionAlways

◆ Metafile() [2/8]

System::Drawing::Imaging::Metafile::Metafile ( const SharedPtr< System::IO::Stream > &  stream)

NOT IMPLEMENTED.

Exceptions
NotImplementedExceptionAlways

◆ Metafile() [3/8]

System::Drawing::Imaging::Metafile::Metafile ( const SharedPtr< System::IO::Stream > &  stream,
IntPtr  hdc,
EmfType  type 
)

NOT IMPLEMENTED.

Exceptions
NotImplementedExceptionAlways

◆ Metafile() [4/8]

System::Drawing::Imaging::Metafile::Metafile ( const SharedPtr< System::IO::Stream > &  stream,
IntPtr  hdc 
)

NOT IMPLEMENTED.

Exceptions
NotImplementedExceptionAlways

◆ Metafile() [5/8]

System::Drawing::Imaging::Metafile::Metafile ( const SharedPtr< System::IO::Stream > &  stream,
IntPtr  hdc,
Rectangle  rect,
MetafileFrameUnit  frameUnit,
EmfType  type 
)

NOT IMPLEMENTED.

Exceptions
NotImplementedExceptionAlways

◆ Metafile() [6/8]

System::Drawing::Imaging::Metafile::Metafile ( const SharedPtr< System::IO::Stream > &  stream,
IntPtr  hdc,
RectangleF  rect,
MetafileFrameUnit  frameUnit,
EmfType  type 
)

NOT IMPLEMENTED.

Exceptions
NotImplementedExceptionAlways

◆ Metafile() [7/8]

System::Drawing::Imaging::Metafile::Metafile ( IntPtr  ,
EmfType   
)

NOT IMPLEMENTED.

Exceptions
NotImplementedExceptionAlways

◆ ~Metafile()

virtual System::Drawing::Imaging::Metafile::~Metafile ( )
virtual

Destructor.

◆ Metafile() [8/8]

System::Drawing::Imaging::Metafile::Metafile ( const SharedPtr< System::IO::Stream > &  stream,
const Drawing::Imaging::ImageFormatPtr image_format 
)
protected

Constructs a new instance of Metafile class.

Parameters
streamA stream object to read the metafile from
image_formatThe original image format

Member Function Documentation

◆ Clone()

virtual SharedPtr<Image> System::Drawing::Imaging::Metafile::Clone ( )
overridevirtual

Returns a copy of the current object.

Implements System::Drawing::Image.

◆ Draw() [1/3]

virtual void System::Drawing::Imaging::Metafile::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 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() [2/3]

virtual void System::Drawing::Imaging::Metafile::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 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() [3/3]

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

Draws the the image 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.

◆ get_Height()

virtual int System::Drawing::Imaging::Metafile::get_Height ( ) const
overridevirtual

Returns the heights of the image in pixels.

Implements System::Drawing::Image.

◆ get_PixelFormat()

virtual Imaging::PixelFormat System::Drawing::Imaging::Metafile::get_PixelFormat ( ) const
overridevirtual

Returns a value the indicates the pixel format.

Implements System::Drawing::Image.

◆ get_RawFormat()

virtual Imaging::ImageFormatPtr System::Drawing::Imaging::Metafile::get_RawFormat ( ) const
overridevirtual

Returns a value the indicates the image format.

Implements System::Drawing::Image.

◆ get_Width()

virtual int System::Drawing::Imaging::Metafile::get_Width ( ) const
overridevirtual

Returns the width of the image in pixels.

Implements System::Drawing::Image.

◆ GetDrawingCanvas()

virtual std::unique_ptr<SkCanvas> System::Drawing::Imaging::Metafile::GetDrawingCanvas ( ) const
overrideprotectedvirtual

NOT IMPLEMENTED.

Exceptions
NotImplementedExceptionAlways

Implements System::Drawing::Image.

◆ GetHenhmetafile()

IntPtr System::Drawing::Imaging::Metafile::GetHenhmetafile ( )

NOT IMPLEMENTED.

Exceptions
NotImplementedExceptionAlways

◆ GetMetafileHeader()

SharedPtr<MetafileHeader> System::Drawing::Imaging::Metafile::GetMetafileHeader ( )

Returns a header associated with the current object.

◆ GetOriginalFormat()

virtual Imaging::PixelFormat System::Drawing::Imaging::Metafile::GetOriginalFormat ( ) const
overrideprotectedvirtual

Returns the original image format.

Implements System::Drawing::Image.

◆ GetRawBytes()

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

NOT IMPLEMENTED.

Exceptions
NotImplementedExceptionAlways

Implements System::Drawing::Image.

◆ GetSkBitmap()

virtual const SkBitmap* System::Drawing::Imaging::Metafile::GetSkBitmap ( ) const
overrideprotectedvirtual

Returns an underlying SkBitmap object.

Implements System::Drawing::Image.

◆ GetSkEncodedFormat()

virtual const SkEncodedImageFormat System::Drawing::Imaging::Metafile::GetSkEncodedFormat ( ) const
overrideprotectedvirtual

Returns an underlying SkEncodedFormat object.

Implements System::Drawing::Image.

Member Data Documentation

◆ m_bounds

Rectangle System::Drawing::Imaging::Metafile::m_bounds
protected

A bounding rectangle of the image.

◆ m_dummy_sk_bitmap

std::unique_ptr<SkBitmap> System::Drawing::Imaging::Metafile::m_dummy_sk_bitmap
mutableprotected

An SkBitmap object representing the image.

◆ m_height

int System::Drawing::Imaging::Metafile::m_height
protected

The hegiht of the image.

◆ m_image_format

Drawing::Imaging::ImageFormatPtr System::Drawing::Imaging::Metafile::m_image_format
protected

Image format.

◆ m_metafile_data

ArrayPtr<uint8_t> System::Drawing::Imaging::Metafile::m_metafile_data
protected

◆ m_width

int System::Drawing::Imaging::Metafile::m_width
protected

The width of the image.