- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试计算等宽字体(我希望保持一致)中字形的宽度和高度,但是 ImageFont.getsize()
给定不同的单字符串返回不同的值:
>>> from PIL import ImageFont
>>> font = ImageFont.truetype("consola.ttf", size=15)
>>> font.getsize(".")
(8, 12)
>>> font.getsize("@")
(9, 15)
ImageFont.getlength()
,另一方面,确实总是为每个字符返回相同的宽度:
>>> font.getlength("@")
8.0
>>> font.getlength(".")
8.0
那么什么是
getsize()
测量,以及为什么它与
getlength()
不同?
最佳答案
来自 ImageFont.py文件:
获取长度():
Returns length (in pixels with 1/64 precision) of given text when rendered in font with provided direction, features, and language. This is the amount by which following text should be offset. Text bounding box may extend past the length in some fonts, e.g. when using italics or accents. The result is returned as a float; it is a whole number if using basic layout.
Returns width and height (in pixels) of given text if rendered in font with provided direction, features, and language.
Use :py:meth:
getlength()
to measure the offset of following text with 1/64 pixel precision.
getlength()
返回当前文本和下一个文本之间的偏移量(空格),而
getsize()
返回当前(输入)文本的实际尺寸。
... a monospaced font is specified. All characters have the same width ...
import PIL
from PIL import ImageFont
font = ImageFont.truetype("consola.ttf",size=15)
print(font.getsize("a"))
print(font.getsize("h"))
print(font.getsize("g"))
print(font.getsize("z"))
print(font.getsize("."))
print(font.getsize("@"))
print(font.getlength("a"))
print(font.getlength("h"))
print(font.getlength("g"))
print(font.getlength("z"))
print(font.getlength("."))
print(font.getlength("@"))
哪些输出:
(8, 12)
(8, 12)
(8, 15)
(8, 12)
(8, 12)
(9, 15)
8.0
8.0
8.0
8.0
8.0
8.0
几乎每个字符的宽度都是 8,偏移量是 8,但是它们的高度不同,因为有些字符有延伸部分,例如“g””向下延伸的部分。唯一的异常(exception)是“@”,它有一个宽度为 9,为此我找不到任何理由。
关于python - 为什么 ImageFont.getsize() 在使用等宽字体时会不一致地测量字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65556197/
如果图像的宽度和高度相等,我如何添加类“相等”。 这是我的代码: var img = $('img', this); var width = img.width(); var height = img
任何人都可以告诉我涵盖大部分 unicode 字符的等宽字体吗?如果没有,那么包含大部分欧洲语言字符集的等宽字体? 最佳答案 我也在寻找单色空间、丰富的 Unicode 字体。到目前为止,我使用 De
我编写了一个程序来拍摄照片并创建 ASCII 表示(ASCII 艺术)。起初,我将 ASCII 字符串写入控制台,但现在我有了一个保存文本的 JLabel。但是,JLabel 输出是不规则的,不像控制
如果我有生成的列表 我要分成几列 like this是否有可能以某种方式让列与最宽的列一样宽 . 我有一个下拉导航,目前我在 上只有一个固定宽度s 但对于较小的导航元素,如“常见问题解答”,有很多
我对编程很陌生。 我试图让三个 col-md-4 具有相同的宽度。我假设如果在 HTML 中正确引用了 Bootstrap,则不需要 CSS。任何建议将不胜感激。 代码: /*NAV LOGO*/ .
是否可以像这样制作一个纯 CSS 解决方案: 元素有一些最小宽度。 它们应该动态增长以填充所有容器宽度,然后换行 列表中的所有元素都应具有相同的宽度。 现在是这样的: 这也是我希望它看起来像的样子(我
我正在尝试通过 flexbox 创建三行,其中将包含可变数量的列(顶部和底部的行将在数量上匹配)和一个中间列,它只是一个列。 由于列数是可变的,因此父级上没有设置宽度。 我正在努力让中间列的宽度与顶部
是否可以像这样制作一个纯 CSS 解决方案: 元素有一些最小宽度。 它们应该动态增长以填充所有容器宽度,然后换行 列表中的所有元素都应具有相同的宽度。 现在是这样的: 这也是我希望它看起来像的样子(我
我将对象动态添加到面板,然后添加到我的边框布局。我需要西部、中心和东部的大小都相等。这是我目前所拥有的: static int width = 300;//Screen width static in
我有一列 4 个元素。由于内容不同,所有元素的宽度都不同。使用 flexbox,有谁知道如何使所有元素与最大元素的宽度相同,同时保持它们全部居中? 这是我目前拥有的。 .container { d
我正在创建一个表单,我有 2 个并排的 div。这是我当前的 html: First name Middle n
如何并排排列 3 个 UIButton。我正在使用自动布局。我的要求是: 1.无论设备如何,它们都应该是等宽的 2.从 View 的开始到结束垂直占据 我尝试了不同的方法,我没能实现。是否可以通过界面
我在 flexbox 中使用 box-sizing: border-box; 具有不同的 border 厚度。我希望 flexbox 中的元素具有相等的宽度,但它会计算没有边框的元素的 width。
我在 flexbox 中使用 box-sizing: border-box; 具有不同的 border 厚度。我希望 flexbox 中的元素具有相等的宽度,但它会计算没有边框的元素的 width。
我是一名优秀的程序员,十分优秀!