任何人都可以告訴我如何計算以像素爲單位的字符串寬度,以像素爲單位提供字體大小?我必須在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