问题解决了!谢谢

draw.fontmode="1"

添加上述选项后,反走样被关闭,文本显示为全白,没有不规则 colored颜色 .


请理解,我使用了翻译,所以我的问题可能不准确. 屏幕使用PIL绘制并输出到LED矩阵. 然而,当我写信时,字母周围的一些部分略有模糊.我怎么才能消除这种现象,让它们都变白呢? 请参考下面的照片.加载字体的源代码附在照片下面.

Image

(在照片中很难看到,但文本的模糊部分在边框上清晰可见.

...
self.font14 = ImageFont.truetype(font_path14, 14)
...

我搜索了一下,但找不到任何相关的文章.

推荐答案

正如 comments 中所说,它是由anti-aliasing引起的,你可以像这样 Select 要不要:

#!/usr/bin/env python3

from PIL import Image, ImageDraw, ImageFont

# Create empty black image and get drawing context to it
im = Image.new('RGB', (600,300), 'black')
dctx = ImageDraw.Draw(im)

# Load a TrueType font, antialiasing is enabled by default
font = ImageFont.truetype("/System/Library/Fonts/Supplemental/Academy Engraved LET Fonts.ttf", size=64)

# Disable antialiasing
dctx.fontmode="1"
dctx.text((20,60),"Without antialias", font=font, fill="white")

nColours = len(im.getcolors())
print(f'Without antialising: {nColours=}')

# Enable antialiasing
dctx.fontmode="L"
dctx.text((20,160),"With antialias", font=font, fill="white")

nColours = len(im.getcolors())
print(f'With antialising: {nColours=}')

# Save result
im.save('result.png')

enter image description here

Output

Without antialising: nColours=2
With antialising: nColours=255

在清晰度方面,你会注意到它在抗锯齿的情况下更流畅、更容易阅读(只要看看最初的W,看看没有抗锯齿的情况有多参差不齐),但这也会给图像引入更多的 colored颜色 /灰色阴影,这有时可能是不受欢迎的.


下面是一个特写:

enter image description here

Python相关问答推荐

仅从风格中获取 colored颜色 循环

2维数组9x9,不使用numpy.数组(MutableSequence的子类)

删除最后一个pip安装的包

如何找到满足各组口罩条件的第一行?

如何列举Pandigital Prime Set

"使用odbc_connect(raw)连接字符串登录失败;可用于pyodbc"

使用Python从URL下载Excel文件

启用/禁用shiny 的自动重新加载

网格基于1.Y轴与2.x轴显示在matplotlib中

如何在两列上groupBy,并使用pyspark计算每个分组列的平均总价值

python—telegraph—bot send_voice发送空文件

搜索按钮不工作,Python tkinter

在Python中控制列表中的数据步长

使用SeleniumBase保存和加载Cookie时出现问题

计算机找不到已安装的库'

Python协议不兼容警告

Django在一个不是ForeignKey的字段上加入'

无法使用请求模块从网页上抓取一些产品的名称

如何在Polars中处理用户自定义函数的多行结果?

根据边界点的属性将图划分为子图