1

在我们的应用程序中,可以创建不同文件格式的图像,例如 PNG、BMP、JPEG 等。现在我正在研究创建元文件图像 (.emf) 的可能性。使用我们的图表,我可以让它工作,因为我们使用的是微软图表库,并且可以导出 .emf 格式的图表。

(ChartImageFormat.EmfDual);

我们还创建了地图,这就是它出错的地方。当我使用位图创建图形时,图形元素有一个有用的 visibleClipbounds。

var image = new Bitmap(Width, Height);

using (var graphics = Graphics.FromImage(image))
{
 //visibleClipbounds: {X = 0 Y = 0 Width = 1241 Height = 774}
}

当我使用元文件创建图形对象时,VisibleClipbounds 是巨大的......

Graphics refG = Graphics.FromHwndInternal(IntPtr.Zero);
IntPtr refGrap = refG.GetHdc();
Metafile m = new Metafile(refGrap, EmfType.EmfPlusDual, "...");
using (var graphics = Graphics.FromImage(m))
{
//visibleClipbounds: {X = -4194304 Y = -4194304 Width = 8388608 Height = 8388608}
}

有没有一种方法可以使用元文件创建图形元素,但保持可见剪辑边界与使用位图创建图形元素时的方式相同?

4

0 回答 0