MetafileRecorderGraphics2D

Inheritance: java.lang.Object

public abstract class MetafileRecorderGraphics2D

Графика рекордера метафайлов

Конструкторы

КонструкторОписание
MetafileRecorderGraphics2D()

Методы

МетодОписание
getClip()Получает или задает Region, ограничивающий область рисования этого Graphics
setClip(Region value)Получает или задает Region, ограничивающий область рисования этого Graphics
getClipBounds()Получает границы обрезки.
getBackgroundColor()Получает цвет фона.
setBackgroundColor(Color value)Устанавливает цвет фона.
clear()Очищает состояние графического объекта
drawArc(Pen pen, Rectangle rect, float startAngle, float arcAngle)Рисует дугу, представляющую часть эллипса, заданную структурой Rectangle.
drawCubicBezier(Pen pen, Point pt1, Point pt2, Point pt3, Point pt4)Рисует кубический безье.
drawPolyCubicBezier(Pen pen, Point[] points)Рисует поликубический безье.
drawEllipse(Pen pen, Rectangle rect)Рисует эллипс.
fillEllipse(Brush brush, Rectangle rect)Заполняет эллипс.
drawImage(RasterImage image, Point location)Рисует указанное изображение, используя его оригинальный физический размер, в указанном месте.
drawImage(byte[] imageBytes, Rectangle destRect, int srcUnit)Рисует изображение.
drawImage(InputStream stream, Rectangle destRect, int srcUnit)Рисует изображение.
drawImage(RasterImage image, Rectangle destRect, Rectangle srcRect, int srcUnit)Рисует указанную часть указанного изображения в заданном месте и с заданным размером.
drawLine(Pen pen, int x1, int y1, int x2, int y2)Рисует линию.
drawLine(Pen pen, Point pt1, Point pt2)Рисует линию.
drawPolyline(Pen pen, Point[] points)Рисует полилинию.
drawPath(Pen pen, GraphicsPath path)Рисует путь.
fillPath(Pen pen, Brush brush, GraphicsPath path)Заполняет путь.
drawPie(Pen pen, Rectangle rect, float startAngle, float sweepAngle)Рисует сектор.
fillPie(Brush brush, Rectangle rect, float startAngle, float sweepAngle)Заполняет сектор.
drawPolygon(Pen pen, Point[] points)Рисует многоугольник.
fillPolygon(Brush brush, Point[] points)Заполняет многоугольник.
fillPolygon(Brush brush, Point[] points, int fillMode)Заполняет многоугольник.
drawRectangle(Pen pen, int x, int y, int width, int height)Рисует прямоугольник.
drawRectangle(Pen pen, Rectangle rectangle)Рисует прямоугольник.
fillRectangle(Brush brush, Rectangle rectangle)Заполняет прямоугольник.
drawString(String string, Font font, Color color, int x, int y)Рисует строку.
drawString(String string, Font font, Color color, int x, int y, float angle)Рисует строку.
excludeClip(Rectangle rect)Обновляет область обрезки этого Graphics, исключая область, указанную структурой Rectangle.
excludeClip(Region region)Обновляет область обрезки этого Graphics, исключая область, указанную объектом Region.
intersectClip(RectangleF rect)Обновляет область обрезки этого Graphics до пересечения текущей области обрезки и указанной структуры Rectangle.
intersectClip(Region region)Обновляет область обрезки этого Graphics до пересечения текущей области обрезки и указанного объекта Region.
resetClip()Сбрасывает обрезку.
multiplyTransform(Matrix matrix)Умножает мировое преобразование этого Graphics на указанный Matrix.
multiplyTransform(Matrix matrix, int order)Умножает мировое преобразование этого Graphics на указанный Matrix в заданном порядке.
translateTransform(float x, float y)Изменяет начало системы координат, предварительно добавляя указанное смещение к матрице преобразования этого Graphics.
translateTransform(float x, float y, int order)Изменяет начало системы координат, применяя указанное смещение к матрице преобразования этого Graphics в заданном порядке.
rotateTransform(float angle)Применяет указанное вращение к матрице преобразования этого Graphics.
rotateTransform(float angle, PointF center, int order)Применяет указанное вращение к матрице преобразования этого Graphics в заданном порядке.
scaleTransform(float sx, float sy)Применяет указанную операцию масштабирования к матрице преобразования этого Graphics, предварительно добавляя её к матрице преобразования объекта.
scaleTransform(float sx, float sy, int order)Применяет указанную операцию масштабирования к матрице преобразования этого Graphics в заданном порядке.
getTransform()Получает мировое преобразование.
setTransform(Matrix transform)Устанавливает преобразование.

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

String dir = "c:\\temp\\";

// Размер изображения в пикселях
int deviceWidth = 600;
int deviceHeight = 400;

// Размер изображения в миллиметрах
int deviceWidthMm = (int) (deviceWidth / 100f);
int deviceHeightMm = (int) (deviceHeight / 100f);

com.aspose.imaging.Rectangle frame = new com.aspose.imaging.Rectangle(0, 0, deviceWidth, deviceHeight);

// Создать изображение EMF.
com.aspose.imaging.fileformats.emf.graphics.EmfRecorderGraphics2D graphics =
        new com.aspose.imaging.fileformats.emf.graphics.EmfRecorderGraphics2D(
                frame,
                new com.aspose.imaging.Size(deviceWidth, deviceHeight),
                new com.aspose.imaging.Size(deviceWidthMm, deviceHeightMm));

// Нарисовать черный прямоугольник вдоль границ изображения, используя черное перо шириной 1 пиксель.
graphics.drawRectangle(new com.aspose.imaging.Pen(com.aspose.imaging.Color.getBlack(), 1), 0, 0, deviceWidth, deviceHeight);

// Заполнить прямоугольник цветом white-smoke.
graphics.fillRectangle(
        new com.aspose.imaging.brushes.SolidBrush(com.aspose.imaging.Color.getWhiteSmoke()),
        new com.aspose.imaging.Rectangle(10, 10, 580, 380));

// Нарисовать две диагональные линии, используя темно-зеленое перо шириной 1 пиксель.
graphics.drawLine(new com.aspose.imaging.Pen(com.aspose.imaging.Color.getDarkGreen(), 1), 0, 0, deviceWidth, deviceHeight);
graphics.drawLine(new com.aspose.imaging.Pen(com.aspose.imaging.Color.getDarkGreen(), 1), 0, deviceHeight, deviceWidth, 0);

// Нарисовать дугу внутри прямоугольника {0, 0, 200, 200}, используя синее перо шириной 2 пикселя.
graphics.drawArc(new com.aspose.imaging.Pen(com.aspose.imaging.Color.getBlue(), 2), new com.aspose.imaging.Rectangle(0, 0, 200, 200), 90, 270);

// Заполнить дугу
graphics.fillPie(
        new com.aspose.imaging.brushes.SolidBrush(com.aspose.imaging.Color.getLightSkyBlue()),
        new com.aspose.imaging.Rectangle(0, 0, 150, 150), 90, 270);

// Нарисовать кубический безье, используя красное перо шириной 2 пикселя.
graphics.drawCubicBezier(new com.aspose.imaging.Pen(com.aspose.imaging.Color.getRed(), 2),
        new com.aspose.imaging.Point(0, 0),
        new com.aspose.imaging.Point(200, 133),
        new com.aspose.imaging.Point(400, 166),
        new com.aspose.imaging.Point(600, 400));

// Нарисовать растровое изображение указанного размера в указанном месте.
// Изображение масштабируется, чтобы вписаться в требуемый прямоугольник.
com.aspose.imaging.RasterImage imageToDraw = (com.aspose.imaging.RasterImage) com.aspose.imaging.Image.load(dir + "sample.bmp");
try {
    graphics.drawImage(imageToDraw,
            new com.aspose.imaging.Rectangle(400, 200, 100, 50),
            new com.aspose.imaging.Rectangle(0, 0, deviceWidth, deviceHeight),
            com.aspose.imaging.GraphicsUnit.Pixel);
} finally {
    imageToDraw.dispose();
}

// Нарисовать строку текста
graphics.drawString("Hello World!",
        new com.aspose.imaging.Font("Arial", 48, com.aspose.imaging.FontStyle.Regular),
        com.aspose.imaging.Color.getDarkRed(), 200, 300);

// Создать путь для заполнения
com.aspose.imaging.Figure figureToFill = new com.aspose.imaging.Figure();
figureToFill.setClosed(true);

com.aspose.imaging.GraphicsPath pathToFill = new com.aspose.imaging.GraphicsPath();
pathToFill.addFigure(figureToFill);

figureToFill.addShapes(new com.aspose.imaging.Shape[]
        {
                new com.aspose.imaging.shapes.ArcShape(new com.aspose.imaging.RectangleF(400, 0, 200, 100), 45, 300),
                new com.aspose.imaging.shapes.BezierShape(
                        new com.aspose.imaging.PointF[]
                                {
                                        new com.aspose.imaging.PointF(300, 200),
                                        new com.aspose.imaging.PointF(400, 200),
                                        new com.aspose.imaging.PointF(500, 100),
                                        new com.aspose.imaging.PointF(600, 200),
                                }),
                new com.aspose.imaging.shapes.PolygonShape(
                        new com.aspose.imaging.PointF[]
                                {
                                        new com.aspose.imaging.PointF(300, 100),
                                }),
                new com.aspose.imaging.shapes.RectangleShape(new com.aspose.imaging.RectangleF(0, 100, 200, 200)),
        });

// Заполнить путь, используя желтую кисть и зеленое перо для обводки.
graphics.fillPath(
        new com.aspose.imaging.Pen(com.aspose.imaging.Color.getGreen(), 2),
        new com.aspose.imaging.brushes.SolidBrush(com.aspose.imaging.Color.getYellow()), pathToFill);

// Создать путь для рисования
com.aspose.imaging.GraphicsPath pathToDraw = new com.aspose.imaging.GraphicsPath();
com.aspose.imaging.Figure figureToDraw = new com.aspose.imaging.Figure();
pathToDraw.addFigure(figureToDraw);

figureToDraw.addShapes(new com.aspose.imaging.Shape[]
        {
                new com.aspose.imaging.shapes.ArcShape(new com.aspose.imaging.RectangleF(200, 200, 200, 200), 0, 360),
        });

// Нарисовать путь, используя оранжевое перо шириной 5 пикселей.
graphics.drawPath(new com.aspose.imaging.Pen(com.aspose.imaging.Color.getOrange(), 5), pathToDraw);

// Для растеризации SVG необходимо указать параметры растеризации.
com.aspose.imaging.imageoptions.SvgRasterizationOptions rasterizationOptions = new com.aspose.imaging.imageoptions.SvgRasterizationOptions();
com.aspose.imaging.imageoptions.PngOptions saveOptions = new com.aspose.imaging.imageoptions.PngOptions();
saveOptions.setVectorRasterizationOptions(rasterizationOptions);

// Получить окончательное изображение WMF, включающее все команды рисования.
com.aspose.imaging.fileformats.emf.EmfImage emfImage = graphics.endRecording();
try {
    emfImage.save(dir + "test.output.emf");
} finally {
    emfImage.dispose();
}

MetafileRecorderGraphics2D()

public MetafileRecorderGraphics2D()

getClip()

public Region getClip()

Получает или задает Region, ограничивающий область рисования этого Graphics

Returns: Region - The clip region.

setClip(Region value)

public void setClip(Region value)

Получает или задает Region, ограничивающий область рисования этого Graphics

Parameters:

ПараметрТипОписание
valueRegionОбласть обрезки.

getClipBounds()

public RectangleF getClipBounds()

Получает границы обрезки.

Returns: RectangleF - The clip bounds.

getBackgroundColor()

public Color getBackgroundColor()

Получает цвет фона.

Returns: Color - The color of the background.

setBackgroundColor(Color value)

public void setBackgroundColor(Color value)

Устанавливает цвет фона.

Parameters:

ПараметрТипОписание
valueColorЦвет фона.

clear()

public void clear()

Очищает состояние графического объекта

drawArc(Pen pen, Rectangle rect, float startAngle, float arcAngle)

public void drawArc(Pen pen, Rectangle rect, float startAngle, float arcAngle)

Рисует дугу, представляющую часть эллипса, заданную структурой Rectangle.

Parameters:

ПараметрТипОписание
penPenПеро, определяющее цвет, ширину и стиль фигуры.
rectRectangleГраницы эллипса.
startAnglefloatУгол в градусах, измеряемый по часовой стрелке от оси x до начальной точки дуги.
arcAnglefloatУгол в градусах, измеряемый по часовой стрелке от параметра startAngle до конечной точки дуги.

drawCubicBezier(Pen pen, Point pt1, Point pt2, Point pt3, Point pt4)

public void drawCubicBezier(Pen pen, Point pt1, Point pt2, Point pt3, Point pt4)

Рисует кубический безье.

Parameters:

ПараметрТипОписание
penPenПеро, определяющее цвет, ширину и стиль фигуры.
pt1PointНачальная точка кривой.
pt2PointПервая контрольная точка кривой.
pt3PointВторая контрольная точка кривой.
pt4PointКонечная точка кривой.

drawPolyCubicBezier(Pen pen, Point[] points)

public void drawPolyCubicBezier(Pen pen, Point[] points)

Рисует поликубический безье.

Parameters:

ПараметрТипОписание
penPenПеро, определяющее цвет, ширину и стиль фигуры.
pointsPoint[]Точки.

drawEllipse(Pen pen, Rectangle rect)

public void drawEllipse(Pen pen, Rectangle rect)

Рисует эллипс.

Parameters:

ПараметрТипОписание
penPenПеро, определяющее цвет, ширину и стиль фигуры.
rectRectangleГраницы эллипса.

fillEllipse(Brush brush, Rectangle rect)

public void fillEllipse(Brush brush, Rectangle rect)

Заполняет эллипс.

Parameters:

ПараметрТипОписание
brushBrushКисть, определяющая характеристики заливки.
rectRectangleГраницы эллипса.

drawImage(RasterImage image, Point location)

public void drawImage(RasterImage image, Point location)

Рисует указанное изображение, используя его оригинальный физический размер, в указанном месте.

Parameters:

ПараметрТипОписание
imageRasterImageИзображение для отрисовки.
locationPointРасположение верхнего левого угла отрисованного изображения.

drawImage(byte[] imageBytes, Rectangle destRect, int srcUnit)

public final void drawImage(byte[] imageBytes, Rectangle destRect, int srcUnit)

Рисует изображение.

Parameters:

ПараметрТипОписание
imageBytesbyte[]Байты изображения.
destRectRectangleПрямоугольник назначения.
srcUnitintИсходная единица измерения.

drawImage(InputStream stream, Rectangle destRect, int srcUnit)

public final void drawImage(InputStream stream, Rectangle destRect, int srcUnit)

Рисует изображение.

Parameters:

ПараметрТипОписание
streamjava.io.InputStreamПоток.
destRectRectangleПрямоугольник назначения.
srcUnitintИсходная единица измерения.

drawImage(RasterImage image, Rectangle destRect, Rectangle srcRect, int srcUnit)

public void drawImage(RasterImage image, Rectangle destRect, Rectangle srcRect, int srcUnit)

Рисует указанную часть указанного изображения в заданном месте и с заданным размером.

Parameters:

ПараметрТипОписание
imageRasterImageИзображение для отрисовки.
destRectRectangleСтруктура Rectangle, указывающая расположение и размер отрисованного изображения. Изображение масштабируется, чтобы соответствовать прямоугольнику.
srcRectRectangleСтруктура Rectangle, указывающая часть объекта изображения для отрисовки.
srcUnitintЕдиницы измерения, используемые параметром srcRect.

drawLine(Pen pen, int x1, int y1, int x2, int y2)

public void drawLine(Pen pen, int x1, int y1, int x2, int y2)

Рисует линию.

Parameters:

ПараметрТипОписание
penPenПеро, определяющее цвет, ширину и стиль фигуры.
x1intКоордината x первой точки.
y1intКоордината y первой точки.
x2intКоордината x второй точки.
y2intКоордината y второй точки.

drawLine(Pen pen, Point pt1, Point pt2)

public void drawLine(Pen pen, Point pt1, Point pt2)

Рисует линию.

Parameters:

ПараметрТипОписание
penPenПеро, определяющее цвет, ширину и стиль фигуры.
pt1PointПервая точка.
pt2PointВторая точка.

drawPolyline(Pen pen, Point[] points)

public void drawPolyline(Pen pen, Point[] points)

Рисует полилинию.

Parameters:

ПараметрТипОписание
penPenПеро, определяющее цвет, ширину и стиль фигуры.
pointsPoint[]Точки.

drawPath(Pen pen, GraphicsPath path)

public void drawPath(Pen pen, GraphicsPath path)

Рисует путь.

Parameters:

ПараметрТипОписание
penPenПеро, определяющее цвет, ширину и стиль фигуры.
pathGraphicsPathПуть для рисования.

fillPath(Pen pen, Brush brush, GraphicsPath path)

public void fillPath(Pen pen, Brush brush, GraphicsPath path)

Заполняет путь.

Parameters:

ПараметрТипОписание
penPenПеро, определяющее цвет, ширину и стиль фигуры.
brushBrushКисть, определяющая характеристики заливки.
pathGraphicsPathПуть для заливки.

drawPie(Pen pen, Rectangle rect, float startAngle, float sweepAngle)

public void drawPie(Pen pen, Rectangle rect, float startAngle, float sweepAngle)

Рисует сектор.

Parameters:

ПараметрТипОписание
penPenПеро, определяющее цвет, ширину и стиль фигуры.
rectRectangleГраницы эллипса.
startAnglefloatУгол в градусах, измеряемый по часовой стрелке от оси x до начальной точки дуги.
sweepAnglefloatУгол в градусах, измеряемый по часовой стрелке от параметра startAngle до конечной точки дуги.

fillPie(Brush brush, Rectangle rect, float startAngle, float sweepAngle)

public void fillPie(Brush brush, Rectangle rect, float startAngle, float sweepAngle)

Заполняет сектор.

Parameters:

ПараметрТипОписание
brushBrushКисть, определяющая характеристики заливки.
rectRectangleГраницы эллипса.
startAnglefloatУгол в градусах, измеряемый по часовой стрелке от оси x до начальной точки дуги.
sweepAnglefloatУгол в градусах, измеряемый по часовой стрелке от параметра startAngle до конечной точки дуги.

drawPolygon(Pen pen, Point[] points)

public void drawPolygon(Pen pen, Point[] points)

Рисует многоугольник.

Parameters:

ПараметрТипОписание
penPenПеро, определяющее цвет, ширину и стиль фигуры.
pointsPoint[]Точки.

fillPolygon(Brush brush, Point[] points)

public void fillPolygon(Brush brush, Point[] points)

Заполняет многоугольник.

Parameters:

ПараметрТипОписание
brushBrushКисть, определяющая характеристики заливки.
pointsPoint[]Точки.

fillPolygon(Brush brush, Point[] points, int fillMode)

public void fillPolygon(Brush brush, Point[] points, int fillMode)

Заполняет многоугольник.

Parameters:

ПараметрТипОписание
brushBrushКисть, определяющая характеристики заливки.
pointsPoint[]Точки.
fillModeintРежим заливки.

drawRectangle(Pen pen, int x, int y, int width, int height)

public void drawRectangle(Pen pen, int x, int y, int width, int height)

Рисует прямоугольник.

Parameters:

ПараметрТипОписание
penPenПеро, определяющее цвет, ширину и стиль фигуры.
xintКоордината x верхнего левого угла прямоугольника для рисования.
yintКоордината y верхнего левого угла прямоугольника для рисования.
widthintШирина прямоугольника для рисования.
heightintВысота прямоугольника для рисования.

drawRectangle(Pen pen, Rectangle rectangle)

public void drawRectangle(Pen pen, Rectangle rectangle)

Рисует прямоугольник.

Parameters:

ПараметрТипОписание
penPenПеро, определяющее цвет, ширину и стиль фигуры.
rectangleRectangleПрямоугольник для рисования.

fillRectangle(Brush brush, Rectangle rectangle)

public void fillRectangle(Brush brush, Rectangle rectangle)

Заполняет прямоугольник.

Parameters:

ПараметрТипОписание
brushBrushКисть, определяющая характеристики заливки.
rectangleRectangleПрямоугольник для заливки.

drawString(String string, Font font, Color color, int x, int y)

public void drawString(String string, Font font, Color color, int x, int y)

Рисует строку.

Parameters:

ПараметрТипОписание
строкаjava.lang.StringСтрока.
fontFontШрифт, определяющий формат текста строки.
colorColorЦвет текста.
xintКоордината x верхнего левого угла нарисованного текста.
yintКоордината y верхнего левого угла нарисованного текста.

Example: This example shows how to load a EMF image from a file and draw a text string over it.

String dir = "c:\\temp\\";

com.aspose.imaging.fileformats.emf.EmfImage emfImage = (com.aspose.imaging.fileformats.emf.EmfImage) com.aspose.imaging.Image.load(dir + "test.emf");
try {
    com.aspose.imaging.fileformats.emf.graphics.EmfRecorderGraphics2D graphics =
            com.aspose.imaging.fileformats.emf.graphics.EmfRecorderGraphics2D.fromEmfImage(emfImage);

    // Сначала получите размер изображения
    int width = emfImage.getWidth();
    int height = emfImage.getHeight();

    // Во-вторых, вычислите преобразование, чтобы разместить текстовую строку вдоль главной диагонали изображения -
    // от верхнего левого до нижнего правого угла.
    float emFontSize = 96f;
    float d = (float) java.lang.Math.sqrt(width * width + height * height);
    float scaleFactor = d / (emFontSize * 5f);

    float tan = ((float) height) / width;
    double radians = java.lang.Math.atan(tan);
    double degrees = (180 * radians) / java.lang.Math.PI;

    com.aspose.imaging.Matrix transform = new com.aspose.imaging.Matrix();
    transform.rotate((float) degrees);
    transform.scale(scaleFactor, scaleFactor);

    // Затем установите преобразование.
    graphics.setTransform(transform);

    // Наконец, разместите водяной знак (текстовая строка розового цвета) вдоль главной диагонали.
    graphics.drawString("WATERMARK", new com.aspose.imaging.Font(
                    "Courier New", emFontSize),
            com.aspose.imaging.Color.getLightPink(), 0, 0/*, (float)degrees*/);

    // Сохраните изображение с водяным знаком в другой файл EMF.
    com.aspose.imaging.fileformats.emf.EmfImage scaledEmfImage = graphics.endRecording();
    try {
        scaledEmfImage.save(dir + "test.scaled.emf");
    } finally {
        scaledEmfImage.dispose();
    }
} finally {
    emfImage.dispose();
}

drawString(String string, Font font, Color color, int x, int y, float angle)

public void drawString(String string, Font font, Color color, int x, int y, float angle)

Рисует строку.

Parameters:

ПараметрТипОписание
строкаjava.lang.StringСтрока.
fontFontШрифт, определяющий формат текста строки.
colorColorЦвет текста.
xintКоордината x верхнего левого угла нарисованного текста.
yintКоордината y верхнего левого угла нарисованного текста.
anglefloatУгол в градусах между вектором эксапмента и осью x устройства. Вектор эксапмента параллелен базовой линии строки текста.

excludeClip(Rectangle rect)

public void excludeClip(Rectangle rect)

Обновляет область обрезки этого Graphics, исключая область, указанную структурой Rectangle.

Parameters:

ПараметрТипОписание
rectRectangleСтруктура прямоугольника, указывающая прямоугольник, исключаемый из области отсечения.

excludeClip(Region region)

public void excludeClip(Region region)

Обновляет область обрезки этого Graphics, исключая область, указанную объектом Region.

Parameters:

ПараметрТипОписание
regionRegionОбласть, указывающая область, исключаемую из области отсечения.

intersectClip(RectangleF rect)

public void intersectClip(RectangleF rect)

Обновляет область обрезки этого Graphics до пересечения текущей области обрезки и указанной структуры Rectangle.

Parameters:

ПараметрТипОписание
rectRectangleFСтруктура прямоугольника для пересечения с текущей областью отсечения.

intersectClip(Region region)

public void intersectClip(Region region)

Обновляет область обрезки этого Graphics до пересечения текущей области обрезки и указанного объекта Region.

Parameters:

ПараметрТипОписание
regionRegionОбласть для пересечения с текущей областью.

resetClip()

public void resetClip()

Сбрасывает обрезку.

multiplyTransform(Matrix matrix)

public void multiplyTransform(Matrix matrix)

Умножает мировое преобразование этого Graphics на указанный Matrix.

Parameters:

ПараметрТипОписание
matrixMatrixМатрица, умножающая мировое преобразование.

multiplyTransform(Matrix matrix, int order)

public void multiplyTransform(Matrix matrix, int order)

Умножает мировое преобразование этого Graphics на указанный Matrix в заданном порядке.

Parameters:

ПараметрТипОписание
matrixMatrixМатрица, умножающая мировое преобразование.
orderintПорядок умножения.

translateTransform(float x, float y)

public void translateTransform(float x, float y)

Изменяет начало системы координат, предварительно добавляя указанное смещение к матрице преобразования этого Graphics.

Parameters:

ПараметрТипОписание
xfloatКоордината x трансляции.
yfloatКоордината y трансляции.

translateTransform(float x, float y, int order)

public void translateTransform(float x, float y, int order)

Изменяет начало системы координат, применяя указанное смещение к матрице преобразования этого Graphics в заданном порядке.

Parameters:

ПараметрТипОписание
xfloatКоордината x трансляции.
yfloatКоордината y трансляции.
orderintУказывает, добавляется ли трансляция в начало или в конец матрицы преобразования.

rotateTransform(float angle)

public void rotateTransform(float angle)

Применяет указанное вращение к матрице преобразования этого Graphics.

Parameters:

ПараметрТипОписание
anglefloatУгол вращения в градусах.

rotateTransform(float angle, PointF center, int order)

public void rotateTransform(float angle, PointF center, int order)

Применяет указанное вращение к матрице преобразования этого Graphics в заданном порядке.

Parameters:

ПараметрТипОписание
anglefloatУгол вращения в градусах.
centerPointFЦентр вращения.
orderintУказывает, добавляется ли вращение в конец или в начало преобразования матрицы.

scaleTransform(float sx, float sy)

public void scaleTransform(float sx, float sy)

Применяет указанную операцию масштабирования к матрице преобразования этого Graphics, предварительно добавляя её к матрице преобразования объекта.

Parameters:

ПараметрТипОписание
sxfloatКоэффициент масштабирования по оси X.
syfloatКоэффициент масштабирования по оси Y.

scaleTransform(float sx, float sy, int order)

public void scaleTransform(float sx, float sy, int order)

Применяет указанную операцию масштабирования к матрице преобразования этого Graphics в заданном порядке.

Parameters:

ПараметрТипОписание
sxfloatКоэффициент масштабирования по оси X.
syfloatКоэффициент масштабирования по оси Y.
orderintУказывает, добавляется ли операция масштабирования в начало или в конец матрицы преобразования.

getTransform()

public Matrix getTransform()

Получает мировое преобразование.

Returns: Matrix - The transform matrix.

setTransform(Matrix transform)

public void setTransform(Matrix transform)

Устанавливает преобразование.

Parameters:

ПараметрТипОписание
transformMatrixНовая матрица преобразования.

Example: This example shows how to load a EMF image from a file and draw a text string over it.

String dir = "c:\\temp\\";

com.aspose.imaging.fileformats.emf.EmfImage emfImage = (com.aspose.imaging.fileformats.emf.EmfImage) com.aspose.imaging.Image.load(dir + "test.emf");
try {
    com.aspose.imaging.fileformats.emf.graphics.EmfRecorderGraphics2D graphics =
            com.aspose.imaging.fileformats.emf.graphics.EmfRecorderGraphics2D.fromEmfImage(emfImage);

    // Сначала получите размер изображения
    int width = emfImage.getWidth();
    int height = emfImage.getHeight();

    // Во-вторых, вычислите преобразование, чтобы разместить текстовую строку вдоль главной диагонали изображения -
    // от верхнего левого до нижнего правого угла.
    float emFontSize = 96f;
    float d = (float) java.lang.Math.sqrt(width * width + height * height);
    float scaleFactor = d / (emFontSize * 5f);

    float tan = ((float) height) / width;
    double radians = java.lang.Math.atan(tan);
    double degrees = (180 * radians) / java.lang.Math.PI;

    com.aspose.imaging.Matrix transform = new com.aspose.imaging.Matrix();
    transform.rotate((float) degrees);
    transform.scale(scaleFactor, scaleFactor);

    // Затем установите преобразование.
    graphics.setTransform(transform);

    // Наконец, разместите водяной знак (текстовая строка розового цвета) вдоль главной диагонали.
    graphics.drawString("WATERMARK", new com.aspose.imaging.Font(
                    "Courier New", emFontSize),
            com.aspose.imaging.Color.getLightPink(), 0, 0/*, (float)degrees*/);

    // Сохраните изображение с водяным знаком в другой файл EMF.
    com.aspose.imaging.fileformats.emf.EmfImage scaledEmfImage = graphics.endRecording();
    try {
        scaledEmfImage.save(dir + "test.scaled.emf");
    } finally {
        scaledEmfImage.dispose();
    }
} finally {
    emfImage.dispose();
}