当前位置:  开发笔记 > 编程语言 > 正文

如何使用python的PIL以一定角度绘制文本?

如何解决《如何使用python的PIL以一定角度绘制文本?》经验,为你挑选了2个好方法。

使用Python我希望能够使用PIL以不同的角度绘制文本.

例如,假设您正在绘制时钟周围的数字.数字3将按预期显示,而12我们将逆时针旋转90度.

因此,我需要能够在许多不同的角度绘制许多不同的字符串.



1> DarenW..:

将文本绘制到临时空白图像中,旋转它,然后将其粘贴到原始图像上.您可以完成函数中的步骤.祝你好好确定使用的确切坐标 - 我的冷雾大脑现在还不能胜任.

该演示在图像的斜面上写入黄色文本:

# Demo to add rotated text to an image using PIL

import Image
import ImageFont, ImageDraw, ImageOps

im=Image.open("stormy100.jpg")

f = ImageFont.load_default()
txt=Image.new('L', (500,50))
d = ImageDraw.Draw(txt)
d.text( (0, 0), "Someplace Near Boulder",  font=f, fill=255)
w=txt.rotate(17.5,  expand=1)

im.paste( ImageOps.colorize(w, (0,0,0), (255,255,84)), (242,60),  w)



2> 小智..:

在创建Image对象之前,了解文本的像素大小也很有用.我在绘制图形时使用了这样的代码.然后我没有遇到任何问题,例如数据标签的对齐(图像与文本一样大).

(...)
img_main = Image.new("RGB", (200, 200))
font = ImageFont.load_default()

# Text to be rotated...
rotate_text = u'This text should be rotated.'

# Image for text to be rotated
img_txt = Image.new('L', font.getsize(rotate_text))
draw_txt = ImageDraw.Draw(img_txt)
draw_txt.text((0,0), rotate_text, font=font, fill=255)
t = img_value_axis.rotate(90, expand=1)

将这两个图像连接在一起的其余部分已在此页面上进行了描述.当您以"不规则"角度旋转时,您必须稍微改进此代码.它实际上适用于90,180,270 ......

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有