任何人都可以告诉我如何计算以像素为单位的字符串宽度,以像素为单位提供字体大小?我必须在Linux下做C吗?以像素为单位的字符串宽度
回答
你可能需要类似的FreeType library
在最基本的情况中,假设它是一个固定长度的字体:
int string_width = strlen(str) * CHAR_WIDTH_PX;
其中str是C字符串和CHAR_WIDTH_PX是字体的字符宽度。
但当然在不同的框架和系统中,事情是以不同的方式完成的。为了帮助你,我们需要更多关于你的环境的信息。
我可以知道CHAR_WIDTH_PX为固定宽度的字体,但我必须为比例字体做。 – 2012-07-10 09:55:24
@ShraddhaK你应该在你的问题中指定。 – Alex 2012-07-10 09:56:31
除非您有固定的字体(每个字符始终为X像素宽),否则您无法自己完成此操作。在这种情况下,当然总宽度= PixelPerChar * strlen(String)。
在一般比例字体的情况下,如果字符可能彼此“靠近”,例如A和V(称为“字距”的操作),则需要询问字体呈现库,例如, libGD2。这些库通常提供字符串的边界框,给定字体文件,大小,方向和其他参数。对于GD2使用gdImageStringFT
例子:
int bbox[8]; // x,y of the rectangle bounding the text:
// see manual
gdImageStringFT(NULL, // "Tell me only"
bbox,0,
"/home/lserni/fonts/Verdana.ttf",18,
0.0,0,0,"Hello world");
if (checks on bbox OK)
{
gdImageStringFT(gdHandle, bbox, 0, ...);
}
- 1. 如何以像素为单位获取字符串的宽度?
- 2. 在GWT中计算字符串宽度(以像素为单位)
- 3. 可可从字体中获取字符串的宽度(以像素为单位)
- 4. 如何以像素为单位计算字符串字体宽度?
- 5. 如何在WIN32中查找字符串的宽度(以像素为单位)
- 6. Java中的字符串长度(以像素为单位)
- 7. 以像素为单位的字符串长度
- 8. 根据字符串实际宽度以像素为单位对数组排序
- 9. 宽度(以像素为单位)忽略最大宽度:100%
- 10. 获取宽度(以像素为单位)的高度尺寸(以%为单位)
- 11. 查找以像素为单位的各种Arial字体的字符宽度
- 12. 如何以像素(/逻辑单位)获取字符串的宽度?
- 13. 计算字符串宽度的奇怪行为(以像素为单位)以模拟文字换行
- 14. Java:以毫米为单位获取字符串的宽度
- 15. 如何确定固定宽度字体和最大宽度的最大字符数(以像素为单位)
- 16. 画布宽度和高度以像素为单位
- 17. QRect宽度和高度(以像素为单位)?
- 18. Java:g.drawString()宽度和高度以像素为单位?
- 19. 如何将字符串长度转换为像素单位?
- 20. 如何以像素为单位指定sidebarPanel的宽度?
- 21. Bootstrap以像素为单位获取div列的宽度
- 22. 获取AlertDialog的宽度(以像素为单位)或dp
- 23. 如何以像素为单位获取iOS设备的宽度?
- 24. 如何以像素为单位计算Windows CMD shell的宽度?
- 25. 以像素为单位获取文本的真实宽度
- 26. 以像素为单位设置div的精确宽度?
- 27. 等宽字符的像素宽度
- 28. 如何计算JavaScript中字符串的长度(以像素为单位)?
- 29. imagestringtring - 以像素为单位获取字符串长度的大小
- 30. 在openCV中以像素为单位计算字符串的长度
很大程度上取决于你用什么引擎渲染你的文字,因为不同的发动机可能会暗示对付不同,字距信息等等。你一定不仅要提供字体大小,还要提供字体本身。 – MvG 2012-07-10 09:32:37
好吧,如果我也提供字体,但是怎样才能继续下去呢?我在开始时就陷入了困境,因为我不知道如何获得英文字母的高宽比。我能在哪里得到这个? – 2012-07-10 09:37:35
你还会打印文字,还是只是测量它?如果您打印它,告诉我们您想如何打印它。如果你只想测量,想象你想打印它,可能使用提供的答案中的库,并查看它们提供的测量信息。 – MvG 2012-07-10 09:46:00