pipelines.py
from PIL import Image, ImageDraw, ImageFont
class WaterMarkPipeline(object):
def process_item(self, item, spider):
curPath = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
# C:\Windows\Fonts\simsun.ttc 为本计算机上的字体所在路径
def add_text_to_image(image_name, text, font=ImageFont.truetype(r'C:\Windows\Fonts\simsun.ttc', 24)):
image = Image.open(image_name)
rgba_image = image.convert('RGBA')
text_overlay = Image.new('RGBA', rgba_image.size, (255, 255, 255, 0))
image_draw = ImageDraw.Draw(text_overlay)
text_size_x, text_size_y = image_draw.textsize(text, font=font)
text_xy = (rgba_image.size[0] - text_size_x, rgba_image.size[1] - text_size_y)
image_draw.text(text_xy, text, font=font, fill=(255, 0, 255, 255))
image_with_text = Image.alpha_composite(rgba_image, text_overlay)
image_with_text.save(image_name)
print(111111111111111111111, item['novel_img_path'])
# item['novel_img_path'] 为图片所在本地路径
add_text_to_image(curPath + "/80小说/" + item['novel_img_path'], "这是水印")
return item