aardio 文档

aardio 范例: EMF 矢量图

//EMF 图像
import dotNet;
import System.Drawing;

var width = 400;
var height = 300;
var emfPath = io.fullpath("/test.emf");

var tempBitmap = System.Drawing.Bitmap(1, 1);
var tempGraphics = System.Drawing.Graphics.FromImage(tempBitmap);
var hdc = tempGraphics.GetHdc();

var metafile = System.Drawing.Imaging.Metafile(
    emfPath,
    hdc,
    System.Drawing.Rectangle(0, 0, width, height),
    System.Drawing.Imaging.MetafileFrameUnit.Pixel
);

tempGraphics.ReleaseHdc(hdc);
tempGraphics.Dispose();
tempBitmap.Dispose();

var graphics = System.Drawing.Graphics.FromImage(metafile);

graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

var pen = System.Drawing.Pen(System.Drawing.Color.Blue, 2);
var brush = System.Drawing.SolidBrush(System.Drawing.Color.Red);
var font = System.Drawing.Font("Arial", 16);
var textBrush = System.Drawing.SolidBrush(System.Drawing.Color.Black);

graphics.DrawRectangle(pen, 50, 50, 200, 100);
graphics.FillEllipse(brush, 100, 150, 150, 100);
graphics.DrawString("Hello EMF!", font, textBrush, 120, 80);

graphics.Dispose();
pen.Dispose();
brush.Dispose();
font.Dispose();
textBrush.Dispose();
metafile.Dispose();

raw.execute(emfPath);
Markdown 格式