EmfRecorderGraphics2D Klasse

Summary: The Emf recorder graphics

Module: aspose.imaging.fileformats.emf.graphics

Full Name: aspose.imaging.fileformats.emf.graphics.EmfRecorderGraphics2D

Inheritance: MetafileRecorderGraphics2D

Constructors

NameBeschreibung
EmfRecorderGraphics2D(frame, device_size, device_size_mm)Initialisiert eine neue Instanz der EmfRecorderGraphics2D Klasse.

Properties

NameTypeAccessBeschreibung
background_colorColorr/wLiest oder legt die Hintergrundfarbe fest.
background_modeEmfBackgroundModer/wLiest oder legt den Hintergrundmodus fest.
clipRegionr/wLiest oder legt eine Region fest, die den Zeichenbereich dieses Graphics einschränkt
clip_boundsRectangleFrLiest die Clip-Grenzen.

Methods

NameBeschreibung
clear()Löscht den Zustand des Grafikobjekts
draw_arc(pen, rect, start_angle, arc_angle)Zeichnet einen Bogen, der einen Teil einer Ellipse darstellt, die durch eine Rechteckstruktur angegeben ist.
draw_cubic_bezier(pen, pt1, pt2, pt3, pt4)Zeichnet die kubische Bézierkurve.
draw_ellipse(pen, rect)Zeichnet die Ellipse.
draw_image(image, dest_rect, src_rect, src_unit)Zeichnet den angegebenen Teil des angegebenen Bildes an der angegebenen Position und mit der angegebenen Größe.
draw_image(image, location)Zeichnet das angegebene Image, unter Verwendung seiner ursprünglichen physischen Größe, am angegebenen Ort.
draw_image(image_bytes, dest_rect, src_unit)Zeichnet das Image.
draw_image(stream, dest_rect, src_unit)Zeichnet das Image.
draw_image_from_bytes(image_bytes, dest_rect, src_unit)Zeichnet das Image.
draw_image_from_stream(stream, dest_rect, src_unit)Zeichnet das Image.
draw_line(pen, pt1, pt2)Zeichnet die Linie.
draw_line(pen, x1, y1, x2, y2)Zeichnet die Linie.
draw_path(pen, path)Zeichnet den Pfad.
draw_pie(pen, rect, start_angle, sweep_angle)Zeichnet das Kuchenstück.
draw_poly_cubic_bezier(pen, points)Zeichnet die polykubische Bezierkurve.
draw_polygon(pen, points)Zeichnet das Polygon.
draw_polyline(pen, points)Zeichnet die Polylinie.
draw_rectangle(pen, rectangle)Zeichnet das Rechteck.
draw_rectangle(pen, x, y, width, height)Zeichnet das Rechteck.
draw_string(string, font, color, x, y)Zeichnet die Zeichenkette.
draw_string(string, font, color, x, y, angle)Zeichnet die Zeichenkette.
end_recording()Beendet die Aufnahme.
exclude_clip(rect)Aktualisiert den Clip-Bereich dieses Graphics, um den durch eine Rectangle-Struktur angegebenen Bereich auszuschließen.
exclude_clip(region)Aktualisiert den Clip-Bereich dieses Graphics, um den durch eine Region angegebenen Bereich auszuschließen.
exclude_clip_rect(rect)Aktualisiert den Clip-Bereich dieses Graphics, um den durch eine Rectangle-Struktur angegebenen Bereich auszuschließen.
exclude_clip_rgn(region)Aktualisiert den Clip-Bereich dieses Graphics, um den durch eine Region angegebenen Bereich auszuschließen.
fill_ellipse(brush, rect)Füllt die Ellipse.
fill_path(pen, brush, path)Füllt den Pfad.
fill_pie(brush, rect, start_angle, sweep_angle)Füllt das Kuchenstück.
fill_polygon(brush, points)Füllt das Polygon.
fill_polygon(brush, points, fill_mode)Füllt das Polygon.
fill_rectangle(brush, rectangle)Füllt das Rechteck.
from_emf_image(emf_image)Gibt eine Instanz der EmfRecorderGraphics2D zurück, die alle Datensätze aus dem Emf-Bild enthält.
get_transform()Erhält die Welt-Transformation.
intersect_clip(rect)Aktualisiert den Clip-Bereich dieses Graphics zur Schnittmenge des aktuellen Clip-Bereichs und der angegebenen Rectangle-Struktur.
intersect_clip(region)Aktualisiert den Clip-Bereich dieses Graphics zur Schnittmenge des aktuellen Clip-Bereichs und der angegebenen Region.
intersect_clip_rect_f(rect)Aktualisiert den Clip-Bereich dieses Graphics zur Schnittmenge des aktuellen Clip-Bereichs und der angegebenen Rectangle-Struktur.
intersect_clip_rgn(region)Aktualisiert den Clip-Bereich dieses Graphics zur Schnittmenge des aktuellen Clip-Bereichs und der angegebenen Region.
multiply_transform(matrix)Multipliziert die Welt-Transformation dieses Graphics mit der angegebenen Matrix.
multiply_transform(matrix, order)Multipliziert die Welt-Transformation dieses Graphics mit der angegebenen Matrix in der angegebenen Reihenfolge.
reset_clip()Setzt den Clip zurück.
rotate_transform(angle)Wendet die angegebene Drehung auf die Transformationsmatrix dieses Graphics an.
rotate_transform(angle, center, order)Wendet die angegebene Drehung in der angegebenen Reihenfolge auf die Transformationsmatrix dieses Graphics an.
scale_transform(sx, sy)Wendet die angegebene Skalierungsoperation auf die Transformationsmatrix dieses Graphics an, indem sie dieser Transformationsmatrix vorangestellt wird.
scale_transform(sx, sy, order)Wendet die angegebene Skalierungsoperation in der angegebenen Reihenfolge auf die Transformationsmatrix dieses Graphics an.
set_transform(transform)Setzt die Transformation.
translate_transform(x, y)Ändert den Ursprung des Koordinatensystems, indem die angegebene Verschiebung der Transformationsmatrix dieses Graphics vorangestellt wird.
translate_transform(x, y, order)Ändert den Ursprung des Koordinatensystems, indem die angegebene Verschiebung in der angegebenen Reihenfolge auf die Transformationsmatrix dieses Graphics angewendet wird.

Constructor: EmfRecorderGraphics2D(frame, device_size, device_size_mm)

 EmfRecorderGraphics2D(frame, device_size, device_size_mm) 

Initialisiert eine neue Instanz der EmfRecorderGraphics2D Klasse.

Parameters:

ParameterTypBeschreibung
frameRectangleDer Rahmen.
device_sizeSizeGröße des Geräts.
device_size_mmSizeDie Gerätgröße in mm.

See also:

Example # 1: This example shows how to create a EMF image and draw some geometric shapes o…

Method: draw_arc(pen, rect, start_angle, arc_angle)

 draw_arc(pen, rect, start_angle, arc_angle) 

Zeichnet einen Bogen, der einen Teil einer Ellipse darstellt, die durch eine Rechteckstruktur angegeben ist.

Parameters:

ParameterTypBeschreibung
penPenStift, der die Farbe, Breite und den Stil der Figur bestimmt.
rectRectangleDie Grenzen der Ellipse.
start_anglefloatWinkel in Grad, gemessen im Uhrzeigersinn von der x-Achse zum Startpunkt des Bogens.
arc_anglefloatWinkel in Grad, gemessen im Uhrzeigersinn vom Parameter startAngle bis zum Endpunkt des Bogens.

Method: draw_cubic_bezier(pen, pt1, pt2, pt3, pt4)

 draw_cubic_bezier(pen, pt1, pt2, pt3, pt4) 

Zeichnet die kubische Bézierkurve.

Parameters:

ParameterTypBeschreibung
penPenStift, der die Farbe, Breite und den Stil der Figur bestimmt.
pt1PointDer Startpunkt der Kurve.
pt2PointDer erste Kontrollpunkt der Kurve.
pt3PointDer zweite Kontrollpunkt der Kurve.
pt4PointDer Endpunkt der Kurve.

Method: draw_ellipse(pen, rect)

 draw_ellipse(pen, rect) 

Zeichnet die Ellipse.

Parameters:

ParameterTypBeschreibung
penPenStift, der die Farbe, Breite und den Stil der Figur bestimmt.
rectRectangleDie Grenzen der Ellipse.

Method: draw_image(image, dest_rect, src_rect, src_unit)

 draw_image(image, dest_rect, src_rect, src_unit) 

Zeichnet den angegebenen Teil des angegebenen Bildes an der angegebenen Position und mit der angegebenen Größe.

Parameters:

ParameterTypBeschreibung
imageRasterImageDas Bild zum Zeichnen.
dest_rectRectangleRechteckstruktur, die den Ort und die Größe des gezeichneten Bildes angibt. Das Bild wird skaliert, um in das Rechteck zu passen.
src_rectRectangleRechteckstruktur, die den Teil des Bildobjekts angibt, der gezeichnet werden soll.
src_unitGraphicsUnitDie Maßeinheiten, die vom Parameter srcRect verwendet werden.

Method: draw_image(image, location)

 draw_image(image, location) 

Zeichnet das angegebene Image, unter Verwendung seiner ursprünglichen physischen Größe, am angegebenen Ort.

Parameters:

ParameterTypBeschreibung
imageRasterImageDas Bild zum Zeichnen.
locationPointDer Ort der oberen linken Ecke des gezeichneten Bildes.

Method: draw_image(image_bytes, dest_rect, src_unit)

 draw_image(image_bytes, dest_rect, src_unit) 

Zeichnet das Image.

Parameters:

ParameterTypBeschreibung
image_bytesSystem.ByteDie Bildbytes.
dest_rectRectangleDas Zielrechteck.
src_unitGraphicsUnitDie Quelleneinheit.

Method: draw_image(stream, dest_rect, src_unit)

 draw_image(stream, dest_rect, src_unit) 

Zeichnet das Image.

Parameters:

ParameterTypBeschreibung
Stream_io.BufferedRandomDer Stream.
dest_rectRectangleDas Zielrechteck.
src_unitGraphicsUnitDie Quelleneinheit.

Method: draw_image_from_bytes(image_bytes, dest_rect, src_unit)

 draw_image_from_bytes(image_bytes, dest_rect, src_unit) 

Zeichnet das Image.

Parameters:

ParameterTypBeschreibung
image_bytesSystem.ByteDie Bildbytes.
dest_rectRectangleDas Zielrechteck.
src_unitGraphicsUnitDie Quelleneinheit.

Method: draw_image_from_stream(stream, dest_rect, src_unit)

 draw_image_from_stream(stream, dest_rect, src_unit) 

Zeichnet das Image.

Parameters:

ParameterTypBeschreibung
Stream_io.BufferedRandomDer Stream.
dest_rectRectangleDas Zielrechteck.
src_unitGraphicsUnitDie Quelleneinheit.

Method: draw_line(pen, pt1, pt2)

 draw_line(pen, pt1, pt2) 

Zeichnet die Linie.

Parameters:

ParameterTypBeschreibung
penPenStift, der die Farbe, Breite und den Stil der Figur bestimmt.
pt1PointDer erste Punkt.
pt2PointDer zweite Punkt.

Method: draw_line(pen, x1, y1, x2, y2)

 draw_line(pen, x1, y1, x2, y2) 

Zeichnet die Linie.

Parameters:

ParameterTypBeschreibung
penPenStift, der die Farbe, Breite und den Stil der Figur bestimmt.
x1intDie x-Koordinate des ersten Punktes.
y1intDie y-Koordinate des ersten Punktes.
x2intDie x-Koordinate des zweiten Punktes.
y2intDie y-Koordinate des zweiten Punktes.

Method: draw_path(pen, path)

 draw_path(pen, path) 

Zeichnet den Pfad.

Parameters:

ParameterTypBeschreibung
penPenStift, der die Farbe, Breite und den Stil der Figur bestimmt.
pathGraphicsPathDer Pfad zum Zeichnen.

Method: draw_pie(pen, rect, start_angle, sweep_angle)

 draw_pie(pen, rect, start_angle, sweep_angle) 

Zeichnet das Kuchenstück.

Parameters:

ParameterTypBeschreibung
penPenStift, der die Farbe, Breite und den Stil der Figur bestimmt.
rectRectangleDie Grenzen der Ellipse.
start_anglefloatWinkel in Grad, gemessen im Uhrzeigersinn von der x-Achse zum Startpunkt des Bogens.
sweep_anglefloatWinkel in Grad, gemessen im Uhrzeigersinn vom Parameter startAngle bis zum Endpunkt des Bogens.

Method: draw_poly_cubic_bezier(pen, points)

 draw_poly_cubic_bezier(pen, points) 

Zeichnet die polykubische Bezierkurve.

Parameters:

ParameterTypBeschreibung
penPenStift, der die Farbe, Breite und den Stil der Figur bestimmt.
pointsPoint[]Die Punkte.

Method: draw_polygon(pen, points)

 draw_polygon(pen, points) 

Zeichnet das Polygon.

Parameters:

ParameterTypBeschreibung
penPenStift, der die Farbe, Breite und den Stil der Figur bestimmt.
pointsPoint[]Die Punkte.

Method: draw_polyline(pen, points)

 draw_polyline(pen, points) 

Zeichnet die Polylinie.

Parameters:

ParameterTypBeschreibung
penPenStift, der die Farbe, Breite und den Stil der Figur bestimmt.
pointsPoint[]Die Punkte.

Method: draw_rectangle(pen, rectangle)

 draw_rectangle(pen, rectangle) 

Zeichnet das Rechteck.

Parameters:

ParameterTypBeschreibung
penPenStift, der die Farbe, Breite und den Stil der Figur bestimmt.
rectangleRectangleDas Rechteck zum Zeichnen.

Method: draw_rectangle(pen, x, y, width, height)

 draw_rectangle(pen, x, y, width, height) 

Zeichnet das Rechteck.

Parameters:

ParameterTypBeschreibung
penPenStift, der die Farbe, Breite und den Stil der Figur bestimmt.
xintDie x-Koordinate der oberen linken Ecke des zu zeichnenden Rechtecks.
yintDie y-Koordinate der oberen linken Ecke des zu zeichnenden Rechtecks.
widthintDie Breite des zu zeichnenden Rechtecks.
heightintDie Höhe des zu zeichnenden Rechtecks.

Method: draw_string(string, font, color, x, y)

 draw_string(string, font, color, x, y) 

Zeichnet die Zeichenkette.

Parameters:

ParameterTypBeschreibung
stringstringDie Zeichenkette.
fontFontSchriftart, die das Textformat der Zeichenkette definiert.
colorColorDie Textfarbe.
xintDie x-Koordinate der oberen linken Ecke des gezeichneten Textes.
yintDie y-Koordinate der oberen linken Ecke des gezeichneten Textes.

Method: draw_string(string, font, color, x, y, angle)

 draw_string(string, font, color, x, y, angle) 

Zeichnet die Zeichenkette.

Parameters:

ParameterTypBeschreibung
stringstringDie Zeichenkette.
fontFontSchriftart, die das Textformat der Zeichenkette definiert.
colorColorDie Textfarbe.
xintDie x-Koordinate der oberen linken Ecke des gezeichneten Textes.
yintDie y-Koordinate der oberen linken Ecke des gezeichneten Textes.
anglefloatDer Winkel in Grad, zwischen dem Escapement-Vektor und der x-Achse des Geräts.
Der Escapement-Vektor ist parallel zur Grundlinie einer Textzeile.

Method: end_recording()

 end_recording() 

Beendet die Aufnahme.

Returns

TypBeschreibung
EmfImageDas Ergebnisbild.

Method: exclude_clip(rect)

 exclude_clip(rect) 

Aktualisiert den Clip-Bereich dieses Graphics, um den durch eine Rectangle-Struktur angegebenen Bereich auszuschließen.

Parameters:

ParameterTypBeschreibung
rectRectangleRechteckstruktur, die das Rechteck angibt, das vom Clip-Bereich ausgeschlossen werden soll.

Method: exclude_clip(region)

 exclude_clip(region) 

Aktualisiert den Clip-Bereich dieses Graphics, um den durch eine Region angegebenen Bereich auszuschließen.

Parameters:

ParameterTypBeschreibung
regionRegionRegion, die den Bereich angibt, der vom Clip-Bereich ausgeschlossen werden soll.

Method: exclude_clip_rect(rect)

 exclude_clip_rect(rect) 

Aktualisiert den Clip-Bereich dieses Graphics, um den durch eine Rectangle-Struktur angegebenen Bereich auszuschließen.

Parameters:

ParameterTypBeschreibung
rectRectangleRechteckstruktur, die das Rechteck angibt, das vom Clip-Bereich ausgeschlossen werden soll.

Method: exclude_clip_rgn(region)

 exclude_clip_rgn(region) 

Aktualisiert den Clip-Bereich dieses Graphics, um den durch eine Region angegebenen Bereich auszuschließen.

Parameters:

ParameterTypBeschreibung
regionRegionRegion, die den Bereich angibt, der vom Clip-Bereich ausgeschlossen werden soll.

Method: fill_ellipse(brush, rect)

 fill_ellipse(brush, rect) 

Füllt die Ellipse.

Parameters:

ParameterTypBeschreibung
brushBrushPinsel, der die Eigenschaften der Füllung bestimmt.
rectRectangleDie Grenzen der Ellipse.

Method: fill_path(pen, brush, path)

 fill_path(pen, brush, path) 

Füllt den Pfad.

Parameters:

ParameterTypBeschreibung
penPenStift, der die Farbe, Breite und den Stil der Figur bestimmt.
brushBrushPinsel, der die Eigenschaften der Füllung bestimmt.
pathGraphicsPathDer Pfad zum Füllen.

Method: fill_pie(brush, rect, start_angle, sweep_angle)

 fill_pie(brush, rect, start_angle, sweep_angle) 

Füllt das Kuchenstück.

Parameters:

ParameterTypBeschreibung
brushBrushPinsel, der die Eigenschaften der Füllung bestimmt.
rectRectangleDie Grenzen der Ellipse.
start_anglefloatWinkel in Grad, gemessen im Uhrzeigersinn von der x-Achse zum Startpunkt des Bogens.
sweep_anglefloatWinkel in Grad, gemessen im Uhrzeigersinn vom Parameter startAngle bis zum Endpunkt des Bogens.

Method: fill_polygon(brush, points)

 fill_polygon(brush, points) 

Füllt das Polygon.

Parameters:

ParameterTypBeschreibung
brushBrushPinsel, der die Eigenschaften der Füllung bestimmt.
pointsPoint[]Die Punkte.

Method: fill_polygon(brush, points, fill_mode)

 fill_polygon(brush, points, fill_mode) 

Füllt das Polygon.

Parameters:

ParameterTypBeschreibung
brushBrushPinsel, der die Eigenschaften der Füllung bestimmt.
pointsPoint[]Die Punkte.
fill_modeFillModeDer Füllmodus.

Method: fill_rectangle(brush, rectangle)

 fill_rectangle(brush, rectangle) 

Füllt das Rechteck.

Parameters:

ParameterTypBeschreibung
brushBrushPinsel, der die Eigenschaften der Füllung bestimmt.
rectangleRectangleDas Rechteck zum Füllen.

Method: from_emf_image(emf_image) [static]

 from_emf_image(emf_image) 

Gibt eine Instanz der EmfRecorderGraphics2D zurück, die alle Datensätze aus dem Emf-Bild enthält.

Parameters:

ParameterTypBeschreibung
emf_imageEmfImageDas Emf-Bild, aus dem Datensätze gelesen werden.

Returns

TypBeschreibung
EmfRecorderGraphics2DEine Instanz der EmfRecorderGraphics2D

Method: get_transform()

 get_transform() 

Erhält die Welt-Transformation.

Returns

TypBeschreibung
MatrixDie Transformationsmatrix.

Method: intersect_clip(rect)

 intersect_clip(rect) 

Aktualisiert den Clip-Bereich dieses Graphics zur Schnittmenge des aktuellen Clip-Bereichs und der angegebenen Rectangle-Struktur.

Parameters:

ParameterTypBeschreibung
rectRectangleFRechteckstruktur, die mit dem aktuellen Clip-Bereich geschnitten wird.

Method: intersect_clip(region)

 intersect_clip(region) 

Aktualisiert den Clip-Bereich dieses Graphics zur Schnittmenge des aktuellen Clip-Bereichs und der angegebenen Region.

Parameters:

ParameterTypBeschreibung
regionRegionRegion, die mit dem aktuellen Bereich geschnitten wird.

Method: intersect_clip_rect_f(rect)

 intersect_clip_rect_f(rect) 

Aktualisiert den Clip-Bereich dieses Graphics zur Schnittmenge des aktuellen Clip-Bereichs und der angegebenen Rectangle-Struktur.

Parameters:

ParameterTypBeschreibung
rectRectangleFRechteckstruktur, die mit dem aktuellen Clip-Bereich geschnitten wird.

Method: intersect_clip_rgn(region)

 intersect_clip_rgn(region) 

Aktualisiert den Clip-Bereich dieses Graphics zur Schnittmenge des aktuellen Clip-Bereichs und der angegebenen Region.

Parameters:

ParameterTypBeschreibung
regionRegionRegion, die mit dem aktuellen Bereich geschnitten wird.

Method: multiply_transform(matrix)

 multiply_transform(matrix) 

Multipliziert die Welt-Transformation dieses Graphics mit der angegebenen Matrix.

Parameters:

ParameterTypBeschreibung
matrixMatrixDie Matrix, die die Welttransformation multipliziert.

Method: multiply_transform(matrix, order)

 multiply_transform(matrix, order) 

Multipliziert die Welt-Transformation dieses Graphics mit der angegebenen Matrix in der angegebenen Reihenfolge.

Parameters:

ParameterTypBeschreibung
matrixMatrixDie Matrix, die die Welttransformation multipliziert.
orderMatrixOrderDie Reihenfolge der Multiplikation.

Method: rotate_transform(angle)

 rotate_transform(angle) 

Wendet die angegebene Drehung auf die Transformationsmatrix dieses Graphics an.

Parameters:

ParameterTypBeschreibung
anglefloatWinkel der Drehung in Grad.

Method: rotate_transform(angle, center, order)

 rotate_transform(angle, center, order) 

Wendet die angegebene Drehung in der angegebenen Reihenfolge auf die Transformationsmatrix dieses Graphics an.

Parameters:

ParameterTypBeschreibung
anglefloatWinkel der Drehung in Grad.
centerPointFDas Rotationszentrum.
orderMatrixOrderGibt an, ob die Drehung an die Matrixtransformation angehängt oder vorangestellt wird..

Method: scale_transform(sx, sy)

 scale_transform(sx, sy) 

Wendet die angegebene Skalierungsoperation auf die Transformationsmatrix dieses Graphics an, indem sie dieser Transformationsmatrix vorangestellt wird.

Parameters:

ParameterTypBeschreibung
sxfloatSkalierungsfaktor in x-Richtung.
syfloatSkalierungsfaktor in y-Richtung.

Method: scale_transform(sx, sy, order)

 scale_transform(sx, sy, order) 

Wendet die angegebene Skalierungsoperation in der angegebenen Reihenfolge auf die Transformationsmatrix dieses Graphics an.

Parameters:

ParameterTypBeschreibung
sxfloatSkalierungsfaktor in x-Richtung.
syfloatSkalierungsfaktor in y-Richtung.
orderMatrixOrderGibt an, ob die Skalierungsoperation an die Transformationsmatrix vorangestellt oder angehängt wird.

Method: set_transform(transform)

 set_transform(transform) 

Setzt die Transformation.

Parameters:

ParameterTypBeschreibung
transformMatrixDie neue Transformationsmatrix.

Method: translate_transform(x, y)

 translate_transform(x, y) 

Ändert den Ursprung des Koordinatensystems, indem die angegebene Verschiebung der Transformationsmatrix dieses Graphics vorangestellt wird.

Parameters:

ParameterTypBeschreibung
xfloatDie x-Koordinate der Translation.
yfloatDie y-Koordinate der Translation.

Method: translate_transform(x, y, order)

 translate_transform(x, y, order) 

Ändert den Ursprung des Koordinatensystems, indem die angegebene Verschiebung in der angegebenen Reihenfolge auf die Transformationsmatrix dieses Graphics angewendet wird.

Parameters:

ParameterTypBeschreibung
xfloatDie x-Koordinate der Translation.
yfloatDie y-Koordinate der Translation.
orderMatrixOrderGibt an, ob die Translation an die Transformationsmatrix vorangestellt oder angehängt wird.

Examples

This example shows how to create a EMF image and draw some geometric shapes on it using EmfRecorderGraphics2D.


import aspose.pycore as aspycore
from aspose.imaging import Rectangle, Pen, Color, Point, Image, RasterImage, GraphicsUnit, Font, FontStyle, Figure, GraphicsPath,\
	PointF, RectangleF, Size
from aspose.imaging.brushes import SolidBrush
from aspose.imaging.shapes import ArcShape, BezierShape, PolygonShape, RectangleShape
from aspose.imaging.imageoptions import SvgRasterizationOptions, PngOptions
from aspose.imaging.fileformats.emf.graphics import EmfRecorderGraphics2D
from os.path import join

dir_: str = "c:\\temp"
# Die Bildgröße in Pixeln
device_width: int = 600
device_height: int = 400
# Die Bildgröße in Millimetern
device_width_mm = device_width // 100
device_height_mm = device_height // 100
frame = Rectangle(0, 0, device_width, device_height)
# Erstelle ein EMF-Bild.
graphics = EmfRecorderGraphics2D(frame, Size(device_width, device_height), Size(device_width_mm, device_height_mm))
# Zeichne ein schwarzes Rechteck entlang der Bildränder mit einem 1-pixel-wide schwarzen Stift.
graphics.draw_rectangle(Pen(Color.black, 1), 0, 0, device_width, device_height)
# Fülle ein Rechteck mit der Farbe white-smoke.
graphics.fill_rectangle(SolidBrush(Color.white_smoke), Rectangle(10, 10, 580, 380))
# Zeichne zwei diagonale Linien mit einem 1-pixel-wide darkgreen Stift.
graphics.draw_line(Pen(Color.dark_green, 1), 0, 0, device_width, device_height)
graphics.draw_line(Pen(Color.dark_green, 1), 0, device_height, device_width, 0)
# Zeichne einen Bogen innerhalb des Rechtecks {0, 0, 200, 200} mit einem 2-pixel-wide blauen Stift.
graphics.draw_arc(Pen(Color.blue, 2), Rectangle(0, 0, 200, 200), 90, 270)
# Fülle einen Bogen
graphics.fill_pie(SolidBrush(Color.light_sky_blue), Rectangle(0, 0, 150, 150), 90, 270)
# Zeichne ein kubisches Bézier mit einem 2-pixel-wide roten Stift.
graphics.draw_cubic_bezier(Pen(Color.red, 2), Point(0, 0), Point(200, 133), Point(400, 166), Point(600, 400))

# Zeichne ein Rasterbild der angegebenen Größe am angegebenen Ort.
# Das Bild wird skaliert, um das gewünschte Rechteck zu füllen.
with aspycore.as_of(Image.load(join(dir_, "sample.bmp")), RasterImage) as image_to_draw:
	graphics.draw_image(image_to_draw, Rectangle(400, 200, 100, 50), Rectangle(0, 0, device_width, device_height), GraphicsUnit.PIXEL)

# Zeichne eine Textzeichenkette
graphics.draw_string("Hello World!", Font("Arial", 48, FontStyle.REGULAR), Color.dark_red, 200, 300)

# Erstelle einen Pfad zum Füllen
figure_to_fill = Figure()
figure_to_fill.is_closed = True
path_to_fill = GraphicsPath()
path_to_fill.add_figure(figure_to_fill)
figure_to_fill.add_shapes([ArcShape(Rectangle(400, 0, 200, 100), 45, 300), BezierShape([PointF(300, 200), PointF(400, 200), PointF(500, 100), PointF(600, 200)]), PolygonShape([PointF(300, 100)]), RectangleShape(RectangleF(0, 100, 200, 200))])

# Fülle den Pfad mit einem gelben Pinsel und einem grünen Stift, um die Kontur zu zeichnen
graphics.fill_path(Pen(Color.green, 2), SolidBrushColor.yellow), path_to_fill)

# Erstelle einen Pfad zum Zeichnen
path_to_draw = GraphicsPath()
figure_to_draw = Figure()
path_to_draw.add_figure(figure_to_draw)
figure_to_draw.add_shapes([ArcShape(RectangleF(200, 200, 200, 200), 0, 360)])

# Zeichne den Pfad mit einem 5-pixel-wide orangefarbenen Stift.
graphics.draw_path(Pen(Color.orange, 5), path_to_draw)

# Erhalte das endgültige WMF-Bild, das alle Zeichenbefehle enthält
with graphics.end_recording() as emf_image:
	emf_image.save(join(dir_, "test.output.emf"))