C# 获取图像、字体等对象大小的数据结构SizeF

如果你想要获取字符串 "你好吗" 的字节数组长度或者字符数,

使用如下代码:

cs 复制代码
string s = "你好吗";
//字节数组长度
int byteCount = System.Text.Encoding.UTF8.GetBytes(s).Length;
//字符数
int charCount = s.Length;

如果你想获取这句话在特定字体下显示时所需要的像素宽度或高度,

使用如下代码:

cs 复制代码
using System.Drawing;

Graphics graphics = Graphics.FromHwnd(IntPtr.Zero);
Font font = new Font("Arial", 12);
SizeF textSize = graphics.MeasureString(s, font);

textSize.Width 就是你想要的结果,单位是像素。

注意:这个结果会依赖你的系统设置和所选字体的影响。

上述代码中的:Graphics graphics_ct = Graphics.FromHwnd(IntPtr.Zero);

用于从给定的窗口句柄创建一个Graphics对象。

具体来说,Graphics graphics_ct = Graphics.FromHwnd(IntPtr.Zero);这行代码的作用是创建一个新的Graphics对象,该对象可以用于在窗口上进行绘图操作。

IntPtr.Zero是一个特殊的窗口句柄,通常表示一个无效的窗口句柄,因此这行代码实际上不会在任何窗口上进行绘图。

Graphics类是C#中用于绘制图形和文本的类,它提供了许多方法和属性,可以用于绘制线条、形状、文本和其他可视化元素。

通过使用Graphics对象,可以在窗口、图像、打印机或其他绘图设备上进行绘图操作。

在这行代码中,Graphics.FromHwnd(IntPtr.Zero)方法会返回一个新的Graphics对象,但该对象的绘制操作不会对任何窗口产生影响,因为使用的是无效的窗口句柄。

通常这种用法是为了在代码中创建一个Graphics对象,但并不立即进行实际的绘图操作,而是在后续的代码中使用该对象进行绘图。

相关推荐
geovindu28 分钟前
CSharp: Command Pattern
开发语言·后端·c#·.net·.netcore·命令模式·行为模式
PhotonixBay1 小时前
3D共聚焦显微镜与探针式粗糙度仪:谁更适合亚表面损伤检测?
图像处理·人工智能·测试工具·3d
格林威3 小时前
C# 相机图像阴影校正:使用OpenCvSharp实现工业相机阴影平场校正功能
人工智能·数码相机·opencv·计算机视觉·c#·机器视觉·工业相机
AndrewHZ4 小时前
图像处理入门026 | 分段线性变换:灰度窗与阶梯变换——CT 窗宽窗位的数学本质
图像处理·ct影像·分段线性变换·灰度窗·阶梯变换·密度分层·中间调拉伸
俊昭喜喜里4 小时前
c#中的构造函数
开发语言·数据库·c#
hahaha60164 小时前
HLS高层次综合设计--axi之burst纠偏
开发语言·算法·fpga开发·c#
Ro Jace5 小时前
基于深度学习的图像处理方法
图像处理·人工智能·深度学习
点心的游戏开发世界13 小时前
Unity C# 脚本学习笔记:命名空间与 using
学习·unity·c#
淡海水15 小时前
07-04-并发-ConcurrentBag-T-工作窃取WorkStealing算法
开发语言·算法·c#·bag·concurrent·workstealing
点心的游戏开发世界15 小时前
Unity C# 脚本学习笔记:泛型
学习·unity·c#