Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 文本宽度计算模块_C++_C - Fatal编程技术网

C++ 文本宽度计算模块

C++ 文本宽度计算模块,c++,c,C++,C,这通常是在javascript中完成的,用于计算项目的宽度,但出于各种原因,我需要将此宽度指定给javascript。我使用的模块是C++(通过EnScript)编译的,我想知道是否有任何C++(或C)库能够根据文本、字体大小和字体族来计算文本宽度。例如: int get_pixel_width(char * str, float font_size, char * font_family); 我知道有一些东西可以做到这一点,但在C/C++中找不到任何东西可以用一种平台无关的方式做到这一点。例

这通常是在javascript中完成的,用于计算项目的宽度,但出于各种原因,我需要将此宽度指定给javascript。我使用的模块是C++(通过EnScript)编译的,我想知道是否有任何C++(或C)库能够根据文本、字体大小和字体族来计算文本宽度。例如:

int get_pixel_width(char * str, float font_size, char * font_family);

我知道有一些东西可以做到这一点,但在C/C++中找不到任何东西

可以用一种平台无关的方式做到这一点。例如,(与字体引擎(如)结合使用)可以获取文本字符串,并计算字符串中每个字形的大小和位置,不仅考虑字距和前导,还考虑一些脚本中的字形等具有不同的形状和位置,这取决于它们是否在开头、中间、中间、,或者一个词的结尾


尽管如此,Harfbuzz仍然是一个相当低级的库,主要用于高级渲染库等。在大多数情况下,无论你使用的渲染方法都可能提供比Harfbuzz更简单的更高级的例程。

这是操作系统/GUI工具包的特定,没有通用的C或C++解决方案。C和C++都是平台无关的。语言本身不知道或不关心是否有图形显示,更不用说它的分辨率了。要做到这一点,您需要找到一个特定于平台的库。因此,您需要询问文本的像素宽度。我假设它是指非固定宽度字体中的文本表示。通常,确定该宽度是软件创建该表示的一部分。请提供更多的背景资料。无论提供什么样的“创建文本”都应该提供一个宽度API。你看过吗?它要求从Emscripten内部用C++访问HTML <代码> div < /COD>元素属性。不确定这是否可能。