gpt4 book ai didi

delphi - 渲染图元文件时,文本太大

转载 作者:行者123 更新时间:2023-12-03 15:11:58 25 4
gpt4 key购买 nike

我的 Delphi XE 应用程序中的图元文件呈现出现问题。

问题是当我渲染图元文件时,文本太大。 Irfanview 和 FastReports 呈现如下:

look at the text to the left of the graph

windows 7 Paint 可以很好地渲染它:(这是文本的样子)

windows 7 Paint renders it fine

你知道是什么原因造成的吗?

谢谢!

最佳答案

emf 文件只是 GDI 命令的列表。事实上,系统可以使用标准 Windows GDI 命令非常轻松地“回放”它们(在 Delphi 中,TMetaFile 只是这些 API 的包装器)。

IrfanViewFastReport渲染图元文件内容时,它们只是使用Windows GDI相应的命令。当Windows 7 Paint渲染图元文件内容时,它使用GDI+渲染器。我什至认为它在内部将 emf 文件转换为 emf+ 格式,然后使用 GDI+ 进行抗锯齿渲染。

因此,如果 emf 文件在 IrfanViewFastReport 中渲染不正确,我怀疑这是因为您的图元文件格式不正确:第三个您使用的派对图形引擎正在产生非标准电动势。一个可能的问题是目标系统中缺少所使用的字体,并且 GDI 不会使用与 GDI+ 相同的字体替换该字体。

另一种可能性是 emf 文件可能是双重格式:它包含两种 emf 格式(未正确创建,因此使用 GDI 无法正确渲染)和 emf+ 格式(使用 GDI+ 按预期渲染)。通常,这种双重 emf/emf+格式不应该存在:即使是官方 GDI+ 库也不允许将其图元文件内容保存在 emf+ 中。这是某种“怪物”格式,由您的第三方库创建。

我建议如下:

  • 下载并检查您的 emf 文件 EmfExplorer ;
  • 尝试使用GDI+渲染图元文件;
  • 尝试使用 emfemf+ 转换器 API。

要使用 GDI+,请查看开源 SynGdiPlus unit :它将向您生成的位图添加 GDI+ 抗锯齿功能。它能够将 emf 转换为 emf+。它将使用 native Vista/7 API(就像 Windows 7 绘图),或 Windows XP 下的纯 Delphi 代码。

关于delphi - 渲染图元文件时,文本太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8794368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com