引自免费微信小程序:皆我百晓生
为了实现你的需求,我为你提供了一个Python脚本,它会根据提供的原文和修改后的文本创建一张图片,其中不同之处会被标记为红色。你需要确保已经安装了PIL(Pillow)库,如果没有安装,可以使用pip install pillow
进行安装。
首先,我们需要导入所需的库,然后定义三个函数:split_text
、compare_lines
和 highlight_diff
。接下来是主程序部分,用于调用这些函数并处理文本。
以下是完整的代码:
from PIL import Image, ImageDraw, ImageFont
# 原始文本和修改后的文本
original_text = """
├── 原文
"""
modified_text = """
└── 修改文
└── 用 # ꧂ 分隔
"""
def split_text(original_text, modified_text):
# 将文本按换行符分割成列表
original_lines = original_text.split('\n')
modified_lines = modified_text.split('\n')
return original_lines, modified_lines
def compare_lines(original_lines, modified_lines):
# 比较两组文本,找出不同的行
diff_lines = [(o, m) for o, m in zip(original_lines, modified_lines) if o != m]
return diff_lines
def highlight_diff(original_lines, modified_lines, diff_lines):
# 设置字体样式和大小
font_path = "/path/to/font.ttf" # 替换为你的字体文件路径
font_size = 20
font = ImageFont.truetype(font_path, font_size)
# 计算图片的宽度和高度
max_width = max(font.getsize(line)[0] for line in original_lines + modified_lines) + 20
line_height = font.getsize("A")[1]
image_height = max(len(original_lines), len(modified_lines)) * line_height
# 创建空白图片
image = Image.new('RGB', (1920, image_height), color='white') # 设置为1920宽度
draw = ImageDraw.Draw(image)
# 在图片上绘制文本
y = 0
for original_line, modified_line in zip(original_lines, modified_lines):
if (original_line, modified_line) in diff_lines:
draw.text((0, y), original_line, font=font, fill='black')
draw.text((max_width, y), modified_line, font=font, fill='red')
else:
draw.text((0, y), original_line, font=font, fill='black')
draw.text((max_width, y), modified_line, font=font, fill='black')
y += line_height
# 保存图片
output_image_path = "/path/to/output/directory/comparison.png" # 替换为输出路径
image.save(output_image_path)
print("对比结果已保存到:", output_image_path)
# 调用函数并处理文本
original_lines, modified_lines = split_text(original_text, modified_text)
diff_lines = compare_lines(original_lines, modified_lines)
highlight_diff(original_lines, modified_lines, diff_lines)
这段代码会将原始文本和修改后的文本进行比较,不同之处在生成的图片中以红色显示。你需要替换font_path
和output_image_path
变量中的路径,使其指向正确的字体文件和输出图片的保存位置。
运行此脚本后,会在指定的输出目录下生成一个名为comparison.png
的图片,显示原文与修改文的对比情况,不同之处以红色突出显示。