问题标签 [metafile]
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.
c# - 2D 图形变换 - 移动原点
我有一个矢量图形格式,它的原点位于左下角,我需要将它渲染为一个增强的图元文件,它的原点位于左上角。什么是在两者之间移动而不颠倒它的变换?
c# - c#中如何将jpg、位图格式的图片转换为矢量格式
我尝试将 jpg 图像转换为矢量格式。我尝试实现此代码,但它是通过异常
异常是:GDI+ 中发生一般错误。 请验证我的代码在哪里出错。提前致谢
c# - Excel 如何计算复制范围“如屏幕所示”时生成的元文件的分辨率?
我有一些从http://bytes.com/topic/c-sharp/answers/572657-net-clipboard-metafiles获得的 C# 代码,它在以下两个设置下复制单元格范围:
- 如屏幕所示,
- 打印时如图所示。
当我查看生成的图元文件的分辨率(记录为Gets the resolution, in pixels-per-inch, of this Image object
)时,我会根据复制方法获得不同的值。
使用打印时显示的选项,分辨率为 600,我相信这与我在 Excel 中的 DPI 设置相对应。
使用As shown on screen设置,它会吐出类似
Metafile.VerticalResolution = 72.08107
and的内容Metafile.HorizontalResolution = 71.95952
。在其他机器上,我看到这个值变化很大(值在 111、130 左右等)。
缩放级别似乎对此没有影响。根据我的观察,这些值在单台机器上保持一致,但可能因机器而异。
任何人都可以解释 Excel 在计算图元文件的分辨率时遵循的逻辑,如屏幕所示模式?
更改 Windows 分辨率并测量图元文件分辨率后,这是我生成的表(希望它看起来格式正确):
在虚拟机(同一台物理机)上运行类似过程后,结果如下。比物理机本身更不稳定。这些数据可能没有用,但我想我还是会提供它。
windows - Windows 增强型元文件笔与 Windows 元文件
我正在开发一个拥有庞大的元文件数据库(旧的 win3.0 格式)的系统,我需要将其转换为增强的元文件。我确实转换了整个数据库,并设法将文件按原样播放到显示器上,除了一件事:
旧的元文件使用当前的笔/画笔将文件播放到屏幕上。
另一方面,增强的元文件需要将笔“保存”
在文件中,而我没有设法在运行时更改它。
我需要一种在运行时更改增强的图元文件笔的方法,因此可以根据运行的应用程序在不同的笔中播放一个图元文件。
c# - 将文本添加到图元文件时,字母字体会更改
我想向元文件添加一些文本。
我使用的代码:
新元文件 ( 2.emf ) 中的字母比原始 emf 文件更粗体。此外,新元文件的大小至少是原始文件的两倍。我究竟做错了什么?
编辑:原始 emf 文件 ( 1.emf ) 是从 emf 假脱机文件创建的,文本位于ExtTextOutW
andExtTextOutA
记录中。
c# - 使用 C# 提取/转换 WMF
我有一堆二进制文件,其中似乎嵌入了 Windows 元文件:
{\pict\wmetafile8\picw9031\pich827\picwgoal5119\pi chgoal468 010009000003F901000005001C0000000000050000000B0200 000000050000000C023B03472303 0000001E00030000001E00050000000C02D501001405000000 0B020000000008000000FA020000 0000000000000000040000002D0100001C000000FB0238FF00 0000000000900100000001070000 00417269616C00F47740000000440E0A440786F5771086F577 0100000000003000040000002D01 010005000000020101000000050000000102FFFFFF00050000 002E011800000005000000090200 blah blah blah }
有没有办法用 C# 将我正在查看的内容转换回图像?
delphi - 如何在 TMetaFileCanvas 上透明地绘制 PNG
我需要将 PNG 透明地绘制到 MetaFileCanvas 上。这在我绘制位图(在屏幕上显示时使用)时效果很好,但对于打印我需要一个 MetaFile。我怎样才能做到这一点?
这是一些演示问题的代码。将附加的 PNG 放在某处并更新代码中的路径。
gdi+ - 在 EnumEnhMetaFile 解析期间从 Windows EMF 中提取图像?
我正在修改的程序将 EMF 文件转换为不同的格式 (SVG)。它使用 EnumEnhMetaFile() 执行此操作,该函数为 EMF 的每条记录调用程序的解析例程。这对矢量素材非常有用。但是,它还需要能够在遇到 EMR_STRETCHDIBITS 时拉出位图。(最终目标实际上是一个 base64 编码的 PNG,但症结在于抓取位图。)微软是否在某个地方提供了一个函数来提取图像?向 EMF 添加位图的逆操作是 abitmap.Draw,我需要的是某种 abitmap.Read,它可以在 EnumEnhMetaFile 数据处理中进行操作。
是否有将 EMR_STRETCHDIBITS 提供的数据偏移字段转换为 Windows 位图的函数?请注意,我不想将 EMF 渲染为位图,我想要存储在 EMF 中的原始位图。
谢谢。
delphi - 德尔福、二维码、WMF
我得到了一份“新工作”来使用 QR 过滤器“归档”一些数据。
当数据结构修改并保存到数据库时,我们使用 WMF 过滤器开始“静默打印”,我捕获文件,并将它们全部存储在日志记录中,在数据库 BLOB 中。
一切都很好,但后来他们需要避免重复相同的报告。
我们禁用了“时间戳 QR 字段”,但记录重复了。
我在数据库中放入了一些 CRC,并从页面数据 (WMF) 中计算出来。
有趣的是,当我退出程序时,新生成的 WMF 发生了变化——因此 CRC 也发生了变化。
我认为这是由 QR 引起的,然后我用一个简单的 Delphi 程序进行了检查:
当我重新启动应用程序时,新的 wmf 文件与以前的不同。
我认为我解决了将 wmf 拉伸到 bmp.Canvas 中的问题,但这减慢了日志记录,因为每个 bmp 都是 4 MB,并且有 10 个页面我必须在 4 * 10 MB 上进行 CRC ...(WMF每页只有 85-100 KB,而 4 MB 位图)
所以我正在寻找一些可以在 WMF 上计算 CRC 的简单方法,也许如果我可以完全拆分 WMF 标头,那么我就可以解决这个问题......我现在不知道。
你有什么想法吗?请告诉我!
谢谢。