Python02-图片添加文字
1-代码如下
from PIL import Image, ImageDraw, ImageFont
import os
def add_text_to_image(image_path, output_path, text, position, font_path, font_size, text_color):
# 打开图像
image = Image.open(image_path)
draw = ImageDraw.Draw(image)
# 设置字体
font = ImageFont.truetype(font_path, font_size)
# 计算文字大小
text_bbox = draw.textbbox((0, 0), text, font=font)
text_width = text_bbox[2] - text_bbox[0]
text_height = text_bbox[3] - text_bbox[1]
# 计算位置
x = image.width - text_width - position[0]
y = image.height - text_height - position[1]
# 添加文字
draw.text((x, y), text, font=font, fill=text_color)
# 保存图像
image.save(output_path)
def process_images(input_folder, output_folder, font_path, font_size, text_color, position):
# 确保输出文件夹存在
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 遍历输入文件夹中的所有文件
for filename in os.listdir(input_folder):
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp', '.tiff')):
image_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, filename)
text = os.path.splitext(filename)[0] # 使用文件名作为文字
add_text_to_image(image_path, output_path, text, position, font_path, font_size, text_color)
print(f"Processed: {filename}")
if __name__ == "__main__":
input_folder = 'path/to/input/folder' # 输入文件夹路径
output_folder = 'path/to/output/folder' # 输出文件夹路径
font_path = 'path/to/font.ttf' # 字体文件路径
font_size = 20 # 字体大小
text_color = (255, 255, 255) # 文字颜色,白色
position = (10, 10) # 右下角位置偏移
process_images(input_folder, output_folder, font_path, font_size, text_color, position)
说明
-
计算文字大小:
- 使用
textbbox
方法来获取文字的边界框,然后计算文字的宽度和高度。
- 使用
-
其他部分:
- 代码的其他部分保持不变,包括文件夹路径、字体文件路径、字体大小、文字颜色和位置偏移等参数。