EmfRecorderGraphics2D

Inheritance: java.lang.Object, com.aspose.imaging.fileformats.emf.graphics.MetafileRecorderGraphics2D

public final class EmfRecorderGraphics2D extends MetafileRecorderGraphics2D

Emf kaydedici grafikleri

Yapıcılar

YapıcıAçıklama
EmfRecorderGraphics2D(Rectangle frame, Size deviceSize, Size deviceSizeMm)Yeni bir EmfRecorderGraphics2D sınıfı örneği başlatır.

Yöntemler

YöntemAçıklama
getBackgroundMode()Arka plan modunu alır veya ayarlar.
setBackgroundMode(int value)Arka plan modunu alır veya ayarlar.
endRecording()Kaydı sonlandırır.
fromEmfImage(EmfImage emfImage)Emf görüntüsünden tüm kayıtları içeren EmfRecorderGraphics2D örneğini alır.

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

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

// Görüntünün piksel cinsinden boyutu
int deviceWidth = 600;
int deviceHeight = 400;

// Görüntünün milimetre cinsinden boyutu
int deviceWidthMm = (int) (deviceWidth / 100f);
int deviceHeightMm = (int) (deviceHeight / 100f);

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

// Bir EMF görüntüsü oluştur.
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));

// Görüntü kenarları boyunca 1 piksel genişliğinde siyah bir kalem kullanarak siyah bir dikdörtgen çizin.
graphics.drawRectangle(new com.aspose.imaging.Pen(com.aspose.imaging.Color.getBlack(), 1), 0, 0, deviceWidth, deviceHeight);

// Bir dikdörtgeni beyaz duman rengiyle doldurun.
graphics.fillRectangle(
        new com.aspose.imaging.brushes.SolidBrush(com.aspose.imaging.Color.getWhiteSmoke()),
        new com.aspose.imaging.Rectangle(10, 10, 580, 380));

// 1 piksel genişliğinde koyu yeşil bir kalem kullanarak iki çapraz çizgi çizin.
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} dikdörtgeni içinde 2 piksel genişliğinde mavi bir kalem kullanarak bir yay çizin.
graphics.drawArc(new com.aspose.imaging.Pen(com.aspose.imaging.Color.getBlue(), 2), new com.aspose.imaging.Rectangle(0, 0, 200, 200), 90, 270);

// Bir yay doldurun
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 piksel genişliğinde kırmızı bir kalem kullanarak kübik bir bezier çizin.
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));

// Belirtilen konumda belirtilen boyutta bir raster görüntüsü çizin.
// Görüntü, istenen dikdörtgene sığacak şekilde ölçeklendirilir.
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();
}

// Bir metin dizesi çizin
graphics.drawString("Hello World!",
        new com.aspose.imaging.Font("Arial", 48, com.aspose.imaging.FontStyle.Regular),
        com.aspose.imaging.Color.getDarkRed(), 200, 300);

// Doldurulacak bir yol oluştur
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)),
        });

// Yolu, sarı bir fırça ve kontur çizmek için yeşil bir kalem kullanarak doldurun
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);

// Çizmek için bir yol oluştur
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 piksel genişliğinde turuncu bir kalem kullanarak yolu çizin.
graphics.drawPath(new com.aspose.imaging.Pen(com.aspose.imaging.Color.getOrange(), 5), pathToDraw);

// SVG'yi rasterleştirmek için rasterleştirme seçeneklerini belirtmemiz gerekir.
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);

// Tüm çizim komutlarını içeren son WMF görüntüsünü alın
com.aspose.imaging.fileformats.emf.EmfImage emfImage = graphics.endRecording();
try {
    emfImage.save(dir + "test.output.emf");
} finally {
    emfImage.dispose();
}

EmfRecorderGraphics2D(Rectangle frame, Size deviceSize, Size deviceSizeMm)

public EmfRecorderGraphics2D(Rectangle frame, Size deviceSize, Size deviceSizeMm)

Yeni bir EmfRecorderGraphics2D sınıfı örneği başlatır.

Parameters:

ParametreTürAçıklama
frameRectangleÇerçeve.
deviceSizeSizeCihazın boyutu.
deviceSizeMmSizeCihazın milimetre cinsinden boyutu.

getBackgroundMode()

public int getBackgroundMode()

Arka plan modunu alır veya ayarlar.

Returns: int - Arka plan modu.

setBackgroundMode(int value)

public void setBackgroundMode(int value)

Arka plan modunu alır veya ayarlar.

Parameters:

ParametreTürAçıklama
değerintArka plan modu.

endRecording()

public EmfImage endRecording()

Kaydı sonlandırır.

Returns: EmfImage - The result image.

fromEmfImage(EmfImage emfImage)

public static EmfRecorderGraphics2D fromEmfImage(EmfImage emfImage)

Emf görüntüsünden tüm kayıtları içeren EmfRecorderGraphics2D örneğini alır.

Parameters:

ParametreTürAçıklama
emfImageEmfImageKayıtların okunacağı Emf görüntüsü.

Returns: EmfRecorderGraphics2D - An instance of the EmfRecorderGraphics2D

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);

    // İlk olarak, görüntü boyutunu alın
    int width = emfImage.getWidth();
    int height = emfImage.getHeight();

    // İkinci olarak, görüntünün ana diyagonalı boyunca bir metin dizesi yerleştirmek için bir dönüşüm hesaplayın -
    // sol üst köşeden sağ alt köşeye.
    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);

    // Ardından, dönüşümü ayarlayın.
    graphics.setTransform(transform);

    // Son olarak, ana diyagonal boyunca bir filigran (pembe renkli metin dizesi) yerleştirin.
    graphics.drawString("WATERMARK", new com.aspose.imaging.Font(
                    "Courier New", emFontSize),
            com.aspose.imaging.Color.getLightPink(), 0, 0/*, (float)degrees*/);

    // Filigranlı görüntüyü başka bir EMF dosyasına kaydedin.
    com.aspose.imaging.fileformats.emf.EmfImage scaledEmfImage = graphics.endRecording();
    try {
        scaledEmfImage.save(dir + "test.scaled.emf");
    } finally {
        scaledEmfImage.dispose();
    }
} finally {
    emfImage.dispose();
}