FromEmfImage
EmfRecorderGraphics2D.FromEmfImage method
获取一个实例EmfRecorderGraphics2D
包含 Emf 图像中的所有记录。
public static EmfRecorderGraphics2D FromEmfImage(EmfImage emfImage)
范围 | 类型 | 描述 |
---|---|---|
emfImage | EmfImage | 要从中读取记录的 Emf 图像。 |
返回值
例子
此示例显示如何从文件加载 EMF 图像并在其上绘制文本字符串。
[C#]
string dir = "c:\\temp\\";
using (Aspose.Imaging.FileFormats.Emf.EmfImage emfImage = (Aspose.Imaging.FileFormats.Emf.EmfImage)Aspose.Imaging.Image.Load(dir + "test.emf"))
{
Aspose.Imaging.FileFormats.Emf.Graphics.EmfRecorderGraphics2D graphics =
Aspose.Imaging.FileFormats.Emf.Graphics.EmfRecorderGraphics2D.FromEmfImage(emfImage);
// 首先,获取图片大小
int width = emfImage.Width;
int height = emfImage.Height;
// 其次,计算一个变换,沿着图像的主对角线放置一个文本字符串 -
// 从左上角到右下角。
float emFontSize = 96f;
float d = (float)System.Math.Sqrt(width * width + height * height);
float scaleFactor = d / (emFontSize * 5f);
float tan = ((float)height) / width;
double radians = System.Math.Atan(tan);
double degrees = (180 * radians) / System.Math.PI;
Aspose.Imaging.Matrix transform = new Aspose.Imaging.Matrix();
transform.Rotate((float)degrees);
transform.Scale(scaleFactor, scaleFactor);
// 然后,设置变换。
graphics.SetTransform(transform);
// 最后,沿主对角线放置一个水印(粉红色的文本字符串)。
graphics.DrawString("WATERMARK", new Aspose.Imaging.Font("Courier New", emFontSize), Aspose.Imaging.Color.LightPink, 0, 0/*, (float)degrees*/);
// 将带水印的图像保存到另一个 EMF 文件中。
using (Aspose.Imaging.FileFormats.Emf.EmfImage scaledEmfImage = graphics.EndRecording())
{
scaledEmfImage.Save(dir + "test.scaled.emf");
}
}