.net 可靠。wmf/wmf到基于像素的图像转换

.net 可靠。wmf/wmf到基于像素的图像转换,.net,image,system.drawing,metafile,wmf,.net,Image,System.drawing,Metafile,Wmf,下午好 对于包含透明区域的.wmf文件,我在基于.net内部(System.Drawing)的图元文件/图像处理方面遇到了一些问题。基本上,每当我创建MetaFile.LoadFile(…)并将其保存为tiff/png等文件时,源文件的某些区域就会丢失。我真的无法确定,但看起来,图元文件中基于矢量的信息工作正常,但缺少基于像素的区域(例如,放置在.wmf中的图像) 是否有人知道一种可靠的.net本机和非第三方方法来正确转换wmf文件(如..最终基于像素的图像看起来像.wmf..只是..很好..像

下午好

对于包含透明区域的.wmf文件,我在基于.net内部(System.Drawing)的图元文件/图像处理方面遇到了一些问题。基本上,每当我创建MetaFile.LoadFile(…)并将其保存为tiff/png等文件时,源文件的某些区域就会丢失。我真的无法确定,但看起来,图元文件中基于矢量的信息工作正常,但缺少基于像素的区域(例如,放置在.wmf中的图像)

是否有人知道一种可靠的.net本机和非第三方方法来正确转换wmf文件(如..最终基于像素的图像看起来像.wmf..只是..很好..像素化)

干杯,谢谢,
-问题是.NET是GDI+,而WMF/EMF是GDI。重要的是要知道GDI+与GDI不兼容,它们有完全不同的API和功能。因此,GDI图元文件中的某些操作的行为与预期不符。透明位图,以及图元文件上的世界变换等,通常不像微软宣传的那样有效

到目前为止,我得到的最好结果是将图元文件转换为原生GDI+,这需要模拟GDI堆栈,并应用一些主要的调整来获得正确的文本定位等

看看EMFExplorer,在那里找到的信息会有很大帮助。
好的,显然将图元文件(.wmf/.emf)转换为另一种格式最可靠的方法是使用.png作为输出格式,因为在msdn描述中,图元文件在内部处理/转换为png格式(使用alpha等),例如图元文件.Save(“somewher”…)默认情况下将以png ImageFormat输出

因此,如果您确实希望从图元文件输入中创建非png图像,那么如果您付出额外的努力,将其转换并存储为png,并将该png重新转换为最终格式,将获得最佳结果。有点跛脚,但再一次。。wmf本身无论如何都很奇怪,我(个人)得出结论:它是邪恶的

-J