|
|
1
21
使用GDI+创建图像并将其保存为EMF很简单
这是您大部分时间想要做的,因为这就是EMF的用途:以GDI+绘图命令的形式保存矢量图像。
你可以保存一个
|
|
|
2
12
我想这就是我解决问题的方法。 |
|
|
3
3
元文件是记录一系列GDI操作的文件。它是可缩放的,因为生成图片的原始操作序列被捕获,因此记录的坐标可以缩放。
我认为,在.NET中,您应该创建一个
|
|
|
4
3
问题是:“是否有其他方法将图像保存到EMF/WMF?”不是“什么是图元文件”或“如何创建图元文件”或“如何将图元文件与图形一起使用”。 我也在寻找这个问题的答案“如何保存EMF/WMF”
在这两种情况下,图像都保存为png格式。这是我无法解决的问题:/ |
|
|
5
2
埃里克伦的回答是正确的。我在VB.NET中尝试过,并且必须使用两个不同的DllImports才能让它工作:
第一个导入用于第一个调用以获取emf大小。获取实际位的第二个导入。 或者您可以使用:
|
|
|
6
2
你还需要关闭
否则,无法删除该文件,因为进程仍在使用该文件。 |
|
|
7
1
相反,我推荐一些更类似于此线程中给出的托管解决方案的内容: Convert an image into WMF with .NET? P、 我之所以回答这个老问题,是因为这是我找到的最好的答案,但最终开发出了一个托管解决方案,然后将我引向上面的链接。所以,为了节省其他人的时间,我想我应该把这个指向那个。 |
|
|
8
0
我正在寻找一种将元文件对象中的GDI指令保存到EMF文件的方法。韩寒的帖子帮我解决了这个问题。这是在我加入特种部队之前。谢谢你,韩。这是什么 I tried . [DllImport("gdi32.dll")]
static extern IntPtr CopyEnhMetaFile( // Copy EMF to file
IntPtr hemfSrc, // Handle to EMF
String lpszFile // File
);
[DllImport("gdi32.dll")]
static extern int DeleteEnhMetaFile( // Delete EMF
IntPtr hemf // Handle to EMF
);
// Code that creates the metafile
// Metafile metafile = ...
// Get a handle to the metafile
IntPtr iptrMetafileHandle = metafile.GetHenhmetafile();
// Export metafile to an image file
CopyEnhMetaFile(
iptrMetafileHandle,
"image.emf");
// Delete the metafile from memory
DeleteEnhMetaFile(iptrMetafileHandle);
|
|
|
9
0
矢量和位图之间似乎有很多混淆。此线程中的所有代码都会生成位图(非矢量)文件—它不会保留矢量GDI调用。要证明这一点,请下载“EMF解析器”工具并检查输出文件: http://downloads.zdnet.com/abstract.aspx?docid=749645 .
|
|
|
F.Fipoo · 如何将屏幕截图写入PNG? 8 年前 |
|
|
DonBoitnott · 将图标转换为Png 9 年前 |
|
|
techno · 调整图像大小保持纵横比白线边框 10 年前 |
|
|
Ian Boyd · 如何将GDI+位图放置到剪贴板上? 10 年前 |
|
|
wenz · 查找点是否位于DrawBezier函数创建的Bezier线上 10 年前 |
|
|
Vadims Samsinovs · 重绘图像的最有效方法 12 年前 |
|
|
DanyR · 如何在gdi中正确绘制地图坐标+ 12 年前 |