查找文本"space"值(以像素为单位)
Finding the text "space" value in pixels
在处理字体时,有没有办法弄清楚如果是"1 2",两个字符之间的空格应该是多少?
如果在 C++ 或 C# 中已知,我不介意。如果它在C++中,我将对其进行封送,如果是 C# 中,我会将其保存到文件中并在 C++ 中加载它。我试着看看TextMetric结构,但它不存在。
Graphics.MeasureCharacterRanges通过在前后添加零宽度连接器字符u200D
来测量单个字形(偶数空格)获得了非常好的结果。然而,它确实忽略了所有字距调整的内容,因为我认为是零宽度的连接器。
你需要一堆额外的参数,但new StringFormat(StringFormat.GenericTypographic)
和Rectangle.Empty
对我来说做得很好。
它返回字符串中每个字符的漂亮浮点边界数组。
如果你想要文本呈现方式的指标,你需要提供文本。您需要提供 ASCII 空格字符。使用字距调整间距并使文本看起来更具吸引力的现代系统。
您可以使用 Graphics.MeasureString() 并传入字体并" "
带空格的字符串吗?
下面是
C# 中使用窗体的 Paint 事件处理程序的示例:
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
float widthWithSpace = e.Graphics.MeasureString("1 2", new Font("Arial", 12)).Width;
float widthWithoutSpace = e.Graphics.MeasureString("12", new Font("Arial", 12)).Width;
float spaceWidthInPixels = widthWithSpace - widthWithoutSpace ;
}
相关文章:
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- 如何将CMSampleBufferRef/CIImage/UIImage转换为像素,例如uint8_t[]
- 他们如何将红外锁定像素转换为镜头前方 1m 的正常平面上的位置
- 可视化 如何获取图像中像素的颜色(以C++ (sfml) 为单位)
- 将 cv::Mat 转换为无符号的 int 像素
- 如何将RGB像素缓冲区转换为IRandomAccessStream^
- 在Windows上获取OpenGL点大小(以像素为单位)?
- 使用C++解码为ffmpeg中的特定像素格式
- 尝试在给定阈值下将所有像素更改为黑白
- 如何在 QLabel 中以像素为单位放置颜色数据
- 如何在MFC中设置对话框的默认大小(以像素为单位)
- C++识别以像素为单位的二次和三次显示
- 我如何知道像素的位置与相机的相应位置(以厘米或毫米为单位)
- 在 openCV 中以像素为单位计算字符串的长度
- 自由型 2.有没有办法在加载字体后更改字体的大小(以像素为单位)
- 如果新图像中的原始像素为黑色,则Qt绘制一个蓝色像素
- 如何以像素(/逻辑单位)获得字符串的宽度
- OpenGL以像素为单位定义顶点位置
- 有没有更好更快的方法来只填充圆弧(以像素为单位)
- 查找文本"space"值(以像素为单位)