我正在嘗試為 Youtube-Thumbnails 創建一個帶有標題/文本的影像。
定義了以下規則:
- 文本是視頻的標題,總是從縮略圖變為縮略圖。
- Porgram 使用預定義的文本寬度,影像上的文本不得觸及該文本寬度。
- 文本應盡可能接近預定義的 with。
所以我的想法是,我將Graphics.MeasureString能夠跟蹤影像上字串的寬度并增加字體大小并重復此操作,直到接近預定義的寬度但未觸及。
但是我用它測驗過MeasureString,發現它不是那么準確。并且還在這里找到了確認:
但是確切的字串寬度1742不是我的影像的寬度,此時1920應該或多或少相同。
那么,為什么文本幾乎和影像一樣寬,但寬度卻不一樣?
uj5u.com熱心網友回復:
highestWidth = redPixelMatrix.Keys.Count;這將只計算包含紅色像素的列數,不包括文本中的任何空格。您可能想要最小和最大索引。
IE
var minX = int.MaxValue;
var maxX = int.MinValue;
// Loops over rows & columns
// Check if pixel is red
if(i > maxX) maxX = i;
if(i < minX) minX = i;
如果您只想要文本寬度而不是邊界,您可以這樣做maxX - minX。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/457498.html
上一篇:如何在C#中將IEnumerable<Task<T>>轉換為IEnumerable<Func<Task<T>>>?
