问题标签 [wmf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1737 浏览

windows - 使用 Windows 媒体格式 (WMF) 捕获桌面

我正在使用Windows Media Format SDK实时捕获桌面并将其保存在 WMV 文件中(实际上这是对我的项目的过度简化,但这是相关部分)。对于编码,我使用的是Windows Media Video 9 Screen编解码器,因为它对于屏幕捕获非常有效,而且几乎所有人都可以使用它而无需安装任何东西,因为编解码器包含在 Windows Media Player 9 运行时(包含在Windows XP SP1)。

我正在使用 GDI 功能制作 BITMAP 屏幕截图,并将这些 BITMAP 提供给编码器。您可以猜到,使用 GDI 进行屏幕截图很慢,而且我没有得到屏幕光标,我必须手动将其添加到 BITMAP。我最初得到的 BITMAP 是 DDB,我需要将它们转换为 DIB 以便编码器理解(RGB 输入),这需要更多时间。

启动分析器显示大约 50% 的时间花在编码器 WMVCORE.DLL 中。这是意料之中的,当然,因为编码是 CPU 密集型的。

问题是,有一个叫做Windows Media Encoder的东西,它带有一个 SDK,可以使用所需的编解码器以更简单、更 CPU 友好的方式进行屏幕捕获。

WME 基于 WMF。它是一个更高级别的库,并且还具有 .NET 绑定。我不能在我的项目中使用它,因为这会带来我必须避免的不需要的依赖项。

我在询问 WME 用于将样本数据提供给 WMV 编码器的方法。编码发生在 WME 中,就像它发生在我使用 WMF 的应用程序中一样。WME 比我的应用程序更高效,因为它有一种更有效的方式将视频数据提供给编码器。它不依赖缓慢的 GDI 函数和 DDB->DIB 转换。

它是如何完成的?

0 投票
1 回答
4313 浏览

vb.net - How to overlay or watermark a picture in windows media player

I working on a distributed mediaplayer that uses the windows media player component. Now the customer asks me if its possible to have their logo overlayed on the media played instead of them having to render every movie with the logotype.

I have google it and it seems like I can use a directshow filter to do this, but I havent found any good information on how to do it yet.

If anyone here know If I can do this programatically, with a plugin, filter or some other way it would be nice to know. Its fine if its a plugin that costs money too.

What I want is to be able to use a jpg/png as watermark/overlay to the running movie in Windows Media Player 11

0 投票
2 回答
5405 浏览

wpf - WPF 是否支持本机读取/写入 WMF/EMF 文件?

Windows Presentation Foundation 可以在无需使用 WinForms Interop 或 Win32 的情况下读取/写入 WMF/EMF 文件。

如果没有,原因是什么?

0 投票
2 回答
20165 浏览

c# - 如何用 C# 绘制平滑的图像?

我正在尝试在 C# 表单上绘制图像(在 PictureBoxes 中以及使用 Graphics.DrawImage()),并且正在寻找一种将它们绘制平滑的方法。图像必须是支持透明度的格式,例如 PNG、GIF、SVG 和 WMF。C# 不支持开箱即用的 SVG 文件,而且我还没有找到一个好的第三方库可以使用(我找到了 SvgNet,但无法弄清楚)。

我需要绘制一个 WMF 文件,C# 可以通过 Image.FromFile() 函数完成该文件,但它没有抗锯齿。我想知道有什么办法可以解决这个问题吗?

0 投票
3 回答
9689 浏览

c# - 在 C# 中保存元文件

如果我在 System.Drawing.Image 中有 wmf 或 emf 图像,有没有办法用 c# 保存元文件数据而不将其呈现为位图?调用 Image.Save 会将其呈现为位图,我想保留原始数据,以便它仍然是有效的 .wmf 或 .emf 格式文件。

0 投票
1 回答
4583 浏览

printing - 使用 SHIMGVW.DLL 从命令行打印 EMF (WMF)

适用于 Windows XP / Windows Server 2003

我正在尝试从命令行使用 Windows 图片和传真查看器 (shimgvw.dll) 将 EMF(或 WMF)文件格式打印到虚拟打印机“Microsoft XPS Document Writer”。我希望生成的 XPS 是矢量格式,就像 WMF/EMF 一样。

它适用于除 WMF 和 EMF 之外的所有图像格式。XPS 打印机保存对话框出现,但保存的 XPS 文件为空。

如果我加载 WMF 并从 Windows 图片和 FaxViewer GUI(而不是从命令行)单击文件>打印,我可以做到这一点。此外,如果我在 Windows 资源管理器中右键单击 WMF 文件并单击“打印”,它将不允许打印所选的 WMF 文件(它会将 WMF 和 EMF 文件从列表中过滤掉)。

代码:
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = @"C:\WINDOWS\System32\rundll32.exe";
info.Arguments = @"C:\WINDOWS\System32\shimgvw.dll,ImageView_PrintTo /pt ""c:\vectorImage.emf"" ""Microsoft XPS Document Writer""";
Process.Start(info);

不久前我读过很多关于 WMF 漏洞利用的文章,只能假设这些文件的直接打印已被删除?但是,如果我可以从 GUI 打印这些 WMF 文件,那么我看不到如何避免利用。

我想要做的是以编程方式从 WMF/EMF 文件创建 XPS 矢量文件,无需用户交互。我想我应该能够做到这一点,因为所涉及的所有格式都属于微软。

0 投票
2 回答
1442 浏览

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

下午好,

我在使用.net 的内部(System.Drawing)基于 MetaFile / Image 处理包含透明区域的 .wmf 文件时遇到了一些麻烦。基本上每当我执行 MetaFile.LoadFile(...) 并将其保存为 tiff/png 等时,该源文件的某些区域都会丢失。我真的无法确定它,但它 - 似乎 - 元文件中基于矢量的信息工作正常,但基于像素的区域(例如放置在 .wmf 中的图像)丢失了。

有谁知道正确转换 wmf 文件的可靠、.net 本机和非 3rd-party 方式(如.. 基于像素的最终图像看起来像 .wmf.. 只是.. 好.. 像素化)?

干杯和感谢,-J

0 投票
2 回答
1200 浏览

perl - 如何在 Windows 上使用 Perl 将 WMF 图像转换为 PNG 或 JPG?

有没有人知道允许将 WMF 图像转换为 PNG 或 JPEG 格式的 Perl 模块?我搜索了 CPAN,但没有找到任何东西。

由于安装限制,必须是 Perl 模块并在 Windows 上工作。

0 投票
2 回答
1200 浏览

c# - C# - 使用自定义数据流对 ASF 进行编码

我正在尝试创建一个 ASF 文件,而不是使用声音或视频数据,我想创建一个由带有二进制数据的自定义数据包组成的流。

有人可以提供几件事的代码示例:1)设置配置文件。2) 配置自定义流 3) 将自定义数据包插入流中。

非常感激。谢谢!

谢谢罗伊

0 投票
2 回答
6937 浏览

c# - WMF / EMF 文件格式转换 C#

在我的程序中,我需要“播放”或“解析”窗口元文件(WMF 和 EMF)。我已经通过 MSDN 和 Google 进行了挖掘,最接近的是 Graphics。枚举元文件方法。我可以让它工作,因为我的 EnumerateMetafileProc 回调被调用,然后我可以调用 PlayRecord。缺少的是如何从回调中获取有用的数据。

我查看的示例:http: //msdn.microsoft.com/en-us/library/ms142060.aspx

回调有一个recordType 参数,它是一个ENUM。好吧,这看起来很有用,除了它们似乎无法将数据转换为任何有用的类型。

我的目标是回放 WMF/EMF 的创建过程,以便我可以对具有 (DrawLine、DrawPoint、DrawArc) 等方法的专用图形类进行函数调用。从某种意义上说,我正在以完全不同的格式(转换)重新创建 WMF/EMF 绘图。

非常感谢您对此的任何帮助。