[干货]利用Python给文章自动化配图
配图,一直是个人站长的痛点,一个是图片版权问题,另一个就是图片的相关度问题。
但是作为一个有前途的seo,不应该被配图所难倒。所以今天在这里给大家分享一个网站配图解决方案。
大家看到封面图了么?没错那个就是Python自动配的,我们大部分的图片其实都可以通过一些简单的方法进行生成的。本文分享的这个方法就是通过给背景添加的文字的方法实现图片的原创。
那么如何做呢?
首先,我们需要准备一些,先去一些无版权的图片站下载我们需要的图片背景素材,然后放到一个叫做images的文件夹里面,类似这样:
然后需要去下载一个免费的字体,放到fonts文件夹里面,类似这样:
然后再建一个叫做good的文件夹用来存放生成好的图片就OK
最后就是修改一下下面的代码, 改下字体名称就OK了
# -*- conding: utf-8 -*-
"""
给图片添加文字
Author: brooks
Date: 2021/10/29
"""
import random
import os
from hashlib import md5
from PIL import Image, ImageDraw, ImageFont
curdir = os.path.dirname(os.path.abspath(__file__))
img_folder = os.path.join(curdir, "images")
save_dir = os.path.join(curdir, "good")
all_imgs = os.listdir(img_folder)
def get_hash(text):
return md5(text.encode("utf-8")).hexdigest()
def image_add_text(text, logo):
# 随机获取一张图片
img = random.choice(all_imgs)
# 补全图片路径
img_path = os.path.join(img_folder, img)
# 用RGBA的模式打开图片
im = Image.open(img_path).convert("RGBA")
# 创建一张和原图一样大小的图片
txt_img = Image.new('RGBA', im.size, (0, 0, 0, 0))
# 设置字体大小,字体的个数除以图片的长度
font_size = (txt_img.size[0] // len(text))
logo_font_size = font_size // 2
# 设置使用的字体
tfont = ImageFont.truetype(os.path.join(curdir, "fonts/ToneOZ-Pinyin-WenKai-Bold.ttf"),
size=font_size)
logofont = ImageFont.truetype(os.path.join(curdir, "fonts/ToneOZ-Pinyin-WenKai-Bold.ttf"),
size=logo_font_size)
# 在新建的图片上添加文字
draw = ImageDraw.Draw(txt_img)
# 获取字体大小和位置
text_x, text_y = draw.textsize(text, font=tfont)
xz, yz = (txt_img.size[0] - text_x) / 2, (txt_img.size[1] - text_y) / 2
lx, ly = (txt_img.size[0] - logo_font_size * len(logo)), (txt_img.size[1] - logo_font_size * 2)
draw.text((xz, yz), text=text, fill=(255, 255, 255, 120), font=tfont)
print(txt_img.size, lx, ly, xz, yz)
draw.text((lx, ly), text=logo, fill=(255, 255, 255, 120), font=logofont)
# 合并图片
out = Image.alpha_composite(im, txt_img)
# 转为RGB好输出为jpg,不转的话就必须是png
out = out.convert('RGB')
# 根据文字生成文件名hash值
name = get_hash(text)
# 保存
out.save(os.path.join(save_dir, f"{name}.jpg"))
if __name__ == '__main__':
image_add_text("利用Python给文章自动化配图", "Brooks的技术小屋")
最后运行一下就可以得到这样的图片啦
这个代码,每次都会从images文件夹里面随机选取一张图片,然后在图片里面写入文章的标题和水印,分别是image_add_text函数的第一和第二个参数。
是不是很方便?一起来动手做做吧,这样每篇文章都可以有一张独一无二的配图啦。
相关推荐:
用户点击行为系统开发教程
逃离版权,打造一个属于自己的cms系统
关注我,一起学习更多的Python与SEO相关技术
本篇文章来源于微信公众号: brooks的技术小屋
THE END
0
二维码
海报
[干货]利用Python给文章自动化配图
配图,一直是个人站长的痛点,一个是图片版权问题,另一个就是图片的相关度问题。
但是作为一个有前途的seo,不应该被配图所难倒。所以今天在这里给大家分享……