如何在python中生成文本阴影效果?
到目前为止,我已经实现了枕头,但在一些照片上看不到,所以我想在图像后面添加一些阴影(在文本中称为提升效果),如 这基本上是添加了两个文本,一个是模糊版本,另一个是顶部的普通文本,尺寸稍小(请查看第二张图片以了解)如何在python中生成文本阴影效果?,python,image-processing,text,python-imaging-library,Python,Image Processing,Text,Python Imaging Library,到目前为止,我已经实现了枕头,但在一些照片上看不到,所以我想在图像后面添加一些阴影(在文本中称为提升效果),如 这基本上是添加了两个文本,一个是模糊版本,另一个是顶部的普通文本,尺寸稍小(请查看第二张图片以了解) 我找不到任何关于如何模糊文本的地方,因此如果有人能帮我解决这个问题,那就太好了。不是100%确定你必须从什么开始,或者你真正想从什么结束,但是这里有一种技术可以给你文本后面一个柔和的阴影。基本上,您可以执行以下操作: 创建一块足够大的画布来放置文本 在画布上写下你的文字 模糊它来软化
我找不到任何关于如何模糊文本的地方,因此如果有人能帮我解决这个问题,那就太好了。不是100%确定你必须从什么开始,或者你真正想从什么结束,但是这里有一种技术可以给你文本后面一个柔和的阴影。基本上,您可以执行以下操作:
- 创建一块足够大的画布来放置文本
- 在画布上写下你的文字
- 模糊它来软化它
- 将其粘贴到原始图像上
- 把尖锐的文字写在上面
#!/usr/bin/env python3
# See also: https://legacy.imagemagick.org/Usage/fonts/#soft_shadow
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageChops
# Open background image and work out centre
bg = Image.open('bg.png').convert('RGB')
x = bg.width//2
y = bg.height//2
# The text we want to add
text = "StackOverflow"
# Create font
font = ImageFont.truetype('/System/Library/Fonts/MarkerFelt.ttc', 60)
# Create piece of canvas to draw text on and blur
blurred = Image.new('RGBA', bg.size)
draw = ImageDraw.Draw(blurred)
draw.text(xy=(x,y), text=text, fill='cyan', font=font, anchor='mm')
blurred = blurred.filter(ImageFilter.BoxBlur(7))
# Paste soft text onto background
bg.paste(blurred,blurred)
# Draw on sharp text
draw = ImageDraw.Draw(bg)
draw.text(xy=(x,y), text=text, fill='navy', font=font, anchor='mm')
bg.save('result.png')
原始图像
结果图像