问题标签 [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 投票
1 回答
103 浏览

c# - 控制 DC 缩放的因素是什么?

此代码根据我在哪台计算机上运行而获得不同的缩放比例。

进入 Render 方法,Metafile 对象的 PixelFormat 为 DontCare,因此没有有效的垂直或水平分辨率。

从 Render 方法中出来,它的值Format32bppRgb和增加,以适应渲染的图像PhysicalDimension.WidthPhysicalDimension.Height

如何使缩放独立于本地设置?

这是实现CreateMemoryHdc(我没有写,它来自一个OSS库)。

如您所见,传递给 DC 构造函数的宽度、高度和位深度是恒定的。创建元文件会产生不同的物理尺寸。执行此操作后

图元文件PhysicalDimension.Height在我的工作站上(和宽度)为 26.43,在我部署的服务器上为 31.25,因此缩放的差异已经很明显,因此可能不是渲染中的任何结果。

这可能是相关的。BitMapInfo在 OSS 库中定义,如下所示:

所以可能设置biXPelsPerMeterbiYPelsPerMeter会有所帮助。上面的代码没有设置它们并且可能允许平台值。

不幸的是,设置这些值似乎没有任何区别。msdn 说

biXPelsPerMeter

位图的目标设备的水平分辨率,以每米像素为单位。应用程序可以使用此值从资源组中选择与当前设备的特征最匹配的位图。

因此,从资源加载位图时会使用这些设置。这里没有帮助。

这一切看起来都很相关https://www.codeproject.com/articles/177394/%2fArticles%2f177394%2fWorking-with-Metafile-Images-in-NET

知道此代码不在应用程序中运行可能会有所帮助。它将 HTML 呈现为用于打印的元文件,并且它存在于 Web API 网络服务中。

没有用户界面,所以我不确定如何解释它是否是 DPI Aware 的问题。证据表明它受到 DPI 的影响,因此这个问题可能是相关的。

0 投票
2 回答
306 浏览

delphi - Delphi无法打开WMF文件?

我正在使用德尔福 XE3。我尝试使用以下代码打开一个 WMF 文件:

但我总是会得到无效的图形异常。我尝试用ACDSee等其他工具打开wmf文件,确认镜像完成OK。为什么Delphi打不开。我尝试了不同版本的 Delphi,但都失败了。

wmf 文件可以在https://www.dropbox.com/s/wcqdma42xlra07p/thumbnail.wmf?dl=0下载

谢谢

0 投票
1 回答
313 浏览

c# - 来自字节数组的 iText7 WmfImage 引发 IO 异常

有人可以确认这是一个错误吗?

从文件中将 WMF 文件作为 WmfImage 加载(参见代码,方法 1)有效,但从字节数组(方法 2)加载它失败。

就我而言,第二种方法很有用,因为我可以生成 Microsoft Chart 并将其转换为 WMF 字节数组,然后将其放入 PDF 中,而无需先将其保存到文件中。

方法 2 抛出此错误:

原因似乎是构造函数在iText.Kernel.Pdf.Canvas.Wmf.WmfImageData类中接受字节数组。它尝试检查参数是否是正确的 WMF 图像,但这样做是通过尝试从不存在的 URI 加载字节来实现的。

我的修复建议是在 WmfImageData 类中添加以下函数,并将构造函数中的一行从 更改 ReadImageType(url)ReadImageType(bytes).

0 投票
2 回答
671 浏览

c++ - 在 c++ 中使用 SetWinMetaFileBits api 将 wmf 文件转换为 emf 文件

我正在尝试将 wmf 文件转换为 emf 文件。根据我在互联网上了解到的情况,最好的解决方案是这样的。

这里的想法是使用 CreateMetaFileA 和 CloseMetaFile 来获取 HMETAFILE hmf。然后我尝试了我的代码,奇怪的事情来了。手柄 hmf 总是指向 ??? 在内存中,元大小始终为 24,具有不同的图片。并且 hEMF 始终为 None。

这真的很可悲,因为我整晚都在弄清楚如何使代码工作。

我确实阅读了很多材料,包括

http://math2.org/luasearch-2/luadist-extract/cdlua-5.2.dist/src/win32/wmf_emf.c https://www-user.tu-chemnitz.de/~heha/viewzip.cgi/ hs/wmfsave.zip/src/wmfsave.cpp?auto=CPP

有人能帮我一下吗?谢谢。

0 投票
2 回答
912 浏览

r - 强制 ggsave 对 .wmf 文件中的点几何图形进行矢量化

用 R 生成的图如果不能正确导出,则不能用于发布。我在 Windows 机器上工作,并使用 MS Word 2016 进行所有写作目的。所以,我希望将我的图导出为 .wmf 文件(我想 .emf 也可以)。

我用 生成所有图表ggplot2,所以 ggsave(device = "wmf")似乎是一个不错的选择,我想。但是,我对生成的文件有一个主要问题:点几何似乎被打印为光栅而不是矢量格式。以下是生成简单散点图的示例:

我使用以下代码保存绘图:

当我在 MS Word 或 Libre Office 中打开绘图时,我发现这些点根本没有以良好的质量呈现。在 Libre Office Draw 中,一个点看起来像这样(放大了很多):

在此处输入图像描述

在 MS Word 中,绘图如下所示:

在此处输入图像描述

有了这些“点”:

在此处输入图像描述

但是,标签和轴都可以。微软字:

在此处输入图像描述

自由办公室抽奖:

在此处输入图像描述

我想标签、刻度注释和轴(甚至点周围的圆圈)以矢量格式存储,而点几何图形似乎存储为栅格。我担心,由此产生的地块不可用。所以,我想找到一个选项来强制ggsave ()矢量化点几何而不是打印光栅。我非常希望有人能提供帮助——我迫切需要一种简单的方法来从 R 中导出绘图以供发表,以说服我的实验室更多地依赖 R。

0 投票
0 回答
630 浏览

javascript - 将html标签中的“wmf”图像格式转换为“png”格式-NodeJS

我正在一个基于 nodejs 的项目中工作,该项目需要将“wmf”转换为“png”格式。由于浏览器不支持“wmf”格式。因此,我需要编写代码将其转换为 nodejs 中等效的“png”格式img 标签。例如,图像当前表示为:

<img src="data:image/x-wmf;base64,AQAJAAADcAEAAAIAlgAAAAAABQAAAAIBAQAAAAUAAAABAv///wAFAAAALgEZAAAABQAAAAsCAAAAAAUAAAAMAkACYAQLAAAAJgYPAAwATWF0aFR5cGUAAHAAEgAAACYGDwAaAP////8AABAAAADA////rf///yAEAADtAQAABQAAAAkCAAAAAgUAAAAUArsBSgEcAAAA+wIA/wAAAAAAAJABAAAAAAACABBUaW1lcyBOZXcgUm9tYW4ALMXLAHlIJ3ZAkSp2GRpmSQQAAAAtAQAADQAAADIKAAAAAAQAAAAyKFMpkwFYAJAAAAIFAAAAFAJgATsAHAAAAPsCoP4AAAAAAACQAQAAAAAAAgAQVGltZXMgTmV3IFJvbWFuACzFywB5SCd2QJEqdhkaZkkEAAAALQEBAAQAAADwAQAACgAAADIKAAAAAAIAAABIT5wBwAKWAAAAJgYPACEBQXBwc01GQ0MBAPoAAAD6AAAARGVzaWduIFNjaWVuY2UsIEluYy4ABQEABwFEU01UNwAAE1dpbkFsbEJhc2ljQ29kZVBhZ2VzABEFVGltZXMgTmV3IFJvbWFuABEDU3ltYm9sABEFQ291cmllcjEwIEJUABEETVQgRXh0cmEAEgAIIR8o8m8iDyFfIR8hHyHwHkFQ9BUPQQD0RfQl9I9CX0EA9BAPQ19BAPSPRfQqX0j0j0EA9BAPQPSPQX9I9BAPQSpfRF9F9F9F9F9BDwwBAAEAAQACAgIAAgABAQEAAwABAAQAAAoBAAIAg0gAAwAbAAALAQACAIgyAAABAQAKAgCDTwADABsAAAsBAAIAgigAAgCDUwACAIIpAAABAQAAAHQKAAAAJgYPAAoA/////wEAAAAAABwAAAD7AhAABwAAAAAAvAIAAAAAAQICIlN5c3RlbQBJGRpmSQAACgA4AIoBAAAAAAAAAACYz8sABAAAAC0BAAAEAAAA8AEBAAMAAAAAAA==" />

此外,客户端服务器是基于 Linux 的。所以“wmf2png”npm 包不起作用。由于图像是内联的并且没有存储为单独的“*.wmf”文件,因此像“libwmf”这样的 npm 包似乎不起作用。

那么有什么方法可以转换这样的图像并以等效形式表示?

0 投票
0 回答
109 浏览

c# - 有没有办法用 C# 在 Unity 中加载 .wmf 图像?

我有一个 SQLite 数据库,里面装满了我需要在 Unity 中显示的图像。

这些文件存储为 BLOB,我可以从数据库中读取数据并将其作为字节数组存储在我的 C# 脚本中。

不幸的是,所有图像都是我什至不知道存在的文件格式,.wmf AKA Windows Metafile,似乎它通常与 MS Office 剪贴画或其他东西一起使用?它基本上是一种混合矢量图形/光栅图形文件格式:

https://en.wikipedia.org/wiki/Windows_Metafile

我需要在 Unity 中显示这些图像。有谁知道这样做的最佳方法?

我想保持数据库和图像数据静态,所以没有大量的前期转换。

我一次需要加载、转换和显示的最大图像数量可能 < 100 并且肯定 < 1000。

有什么建议么?

0 投票
0 回答
23 浏览

c# - 如何检测 docx 文件中重复的 wmf 文件

有一个docx文件,其中包含一些重复的mathtype方程,如果用Office将其保存为html文件,这些方程可以转换为png文件,重复的方程只转换为一个png文件。

现在我想使用 open xml sdk 2.5 检测重复的方程,目前我可以获得 wmf 的文件名(对应于这些方程,使用 ImagePart.Uri.OriginalString),但找不到检测相等性的方法。

我也尝试了这个方法,检查每个 ImageData 的 CheckSum,对于大多数方程,它都有效;但是对于像“(”和“)”这样的简单方程,校验和是相同的。

我还尝试比较两个 wmf 文件(对应于方程式)的流,但即使是两个完全相同的方程式也会显示出差异。

0 投票
1 回答
409 浏览

windows - 登录失败:Windows Server 2012 R2 上用于远程 PS 脚本执行的未知用户名或密码错误

我正在尝试从 TeamCity Windows Slave 运行 powershell 脚本到另一台服务器以部署我的应用程序。

这是构建配置:

我收到以下错误。

我只使用了正确的用户名和密码。我还检查了本地用户安全策略。我错过了什么吗?

0 投票
1 回答
500 浏览

python - 为什么在尝试使用 python PIL 将 WMF 转换为 PNG 时出现渲染错误?

我试图找到将 .WMF 图像文件转换为 .png 的解决方案,不幸的是我无法在 pyhton 中渲染 .wmf 文件(在 Windows 机器上)。有人对此有解决方案吗?

我尝试过的最简单的示例之一如下(Python 3.6):

但得到错误:

先感谢您