又是为站佬们服务(写)水文的一篇,如何应用python来生成或者说是合成自己的原创图片,适合各位站群大佬哥们生成自己的图片,避免没有配图或者侵权碰瓷的尴尬,当然本渣渣这里分享的仅仅是源码demo,后续使用到生产上,还是需要修改的。
随着互联网越来越规范,关于版权方面的意思也愈发增强,同时各种维权,以及侵权时有发生,而网站配图还是需要有的,毕竟图文并茂,同时网页快照能有图片,无疑是非常有利于用户及搜索引擎的。
下面本渣渣就通过几个 demo 来为大家简单谈谈如何应用 Python 生成自己网站的原创图片,麻麻再也不用担心我的网站配图了!
库安装
pip install pygame
库安装
pip install pygame
库安装
pip install qrcode
#文字生成图片
#微信:huguo00289
# -*- coding: utf-8 -*-
#载入必要的模块
import pygame
#pygame初始化
pygame.init()
# 待转换文字
text = u"文字转图片"
#设置字体和字号
font = pygame.font.SysFont('microsoft yahei', 200)
#渲染图片,设置背景颜色和字体样式,前面的颜色是字体颜色
ftext = font.render(text, True, (65, 83, 130),(255, 255, 255))
#保存图片
pygame.image.save(ftext, "image.jpg")#图片保存地址
运行效果:
#文字生成图片
#微信:huguo00289
# -*- coding: utf-8 -*-
#import os
from PIL import Image,ImageFont,ImageDraw
text = u"这是一段测试文本" #文字信息
im = Image.new("RGB", (300, 200), (255, 255, 255)) #设置色彩模式,图片大小,颜色
dr = ImageDraw.Draw(im)
# font = ImageFont.truetype(os.path.join("fonts", "msyh.ttf"), 14)
font = ImageFont.truetype(font="msyh.ttf", size=20,encoding="utf-8") #设置字体及大小
dr.text((50, 80), text, font=font, fill="#000000") #设置xy坐标轴,填充颜色
im.show() #展示图片
im.save(r'output.png') #保存图片
运行效果:
此案例demo比较适合成语、词语、文学类网站生成配图使用!
#合成图片
#微信:huguo00289
# -*- coding: utf-8 -*-
from PIL import Image
img1=Image.open("hz.jpg") #打开文件1
img2=Image.open("a.jpg") #打开文件2
img1.paste(img2, (535, 295)) # 添加到海报上 x,y 轴参数
img1.show() #展示图片
img1.save(r'hctp.jpg') # 保存海报
运行效果:
#文本写入图片
#微信:huguo00289
# -*- coding: utf-8 -*-
from PIL import ImageFont, ImageDraw, Image
img = Image.open("a.jpg") #打开图片
draw = ImageDraw.Draw(img) #读取
fnt = ImageFont.truetype('msyh.ttf', 50) #设置字体及大小
text1 = "人生什么时候"
draw.text((100, 120), text1, fill='blue', font=fnt) #写入文本1 位置坐标 颜色
text2 = "都不晚"
draw.text((100, 240), text2, fill='blue', font=fnt) #写入文本2
img.save("txtout.jpg") #保存图片
运行效果:
#网址二维码生成图片
#微信:huguo00289
# -*- coding: utf-8 -*-
import qrcode
#make 简单调用
def sc():
site="http://www.zhongzemin.cn"
# content="二维码生成器"
QR_name = 'code.png' # 二维码名称
# QR_code = qrcode.make(content) # 生成二维码
QR_code = qrcode.make(site) # 生成二维码
QR_code.save(QR_name) # 保存二维码
QR_code.show()
#可修改参数属性 正常调用
def zc():
site = "http://www.zhongzemin.cn"
QR_name = 'code.png' # 二维码名称
# 实例化QRCode生成qr对象
qr = qrcode.QRCode(
version=1, #控制二维码的大小,取值范围从1到40。取最小值1时,二维码大小为21*21。
error_correction=qrcode.constants.ERROR_CORRECT_H, #控制二维码纠错级别
box_size=10, #控制二维码中每个格子的像素数,默认为 10
border=2 #控制二维码四周留白包含的格子数,默认为4
)
# 传入数据
qr.add_data(site)
# qr.make(fit=True) #fit=true参数(默认)时,二维码会自动调整大小
# 生成二维码
img = qr.make_image()
# 保存二维码
img.save(QR_name)
# 展示二维码
img.show()
if __name__=='__main__':
#sc()
zc()
运行效果:
#文字水印二维码合成图片
#微信:huguo00289
# -*- coding: utf-8 -*-
import qrcode
import time
import os
from PIL import ImageFont, ImageDraw, Image
class Createimg(object):
def __init__(self,txt,site,bgimg):
self.txt=txt
self.site=site
self.bgimg=Image.open(bgimg)
self.txt_img="txt_img.jpg"
self.code_img="txt_img.png"
self.create_img=f'{int(time.time())}.jpg' #生成10位时间戳图片名
def write_txt_img(self):
draw = ImageDraw.Draw(self.bgimg) # 读取
fnt = ImageFont.truetype('msyh.ttf', 50) # 设置字体及大小
draw.text((100, 120), self.txt, fill='red', font=fnt) # 写入文本1 位置坐标 颜色
self.bgimg.show() #显示图片
self.bgimg.save(self.txt_img) # 保存图片
print("文字写入图片成功!")
def create_code(self):
# 实例化QRCode生成qr对象
qr = qrcode.QRCode(
version=1, # 控制二维码的大小,取值范围从1到40。取最小值1时,二维码大小为21*21。
error_correction=qrcode.constants.ERROR_CORRECT_H, # 控制二维码纠错级别
box_size=10, # 控制二维码中每个格子的像素数,默认为 10
border=2 # 控制二维码四周留白包含的格子数,默认为4
)
# 传入数据
qr.add_data(self.site)
img = qr.make_image()
img.save(self.code_img)
img.show()
print("生成二维码成功!")
def merge_imgs(self):
img1 = Image.open(self.txt_img) # 打开文件1
img2 = Image.open(self.code_img) # 打开文件2
img1.paste(img2, (535, 295)) # 添加到海报上 x,y 轴参数
img1.show() # 展示图片
img1.save(self.create_img) # 保存海报
print("合并图片成功!")
def main(self):
self.write_txt_img() #写入文本信息
self.create_code() #生成二维码图片
self.merge_imgs() #合成图片
os.remove(self.txt_img) #删除写入文本图片
os.remove(self.code_img) #删除二维码图片
if __name__=='__main__':
bgimg=r'hz.jpg'
txt=u"文字水印二维码合成图片"
site="http://www.zhongzemin.cn"
C=Createimg(txt,site,bgimg) #初始化
C.main()
运行效果:
注意:应用以上方法的时候一定要使用免费可商用字体及免费可商用图片作为背景图使用!
以上代码仅供参考,如想要学习研究,不妨多参考一下文末附上的参考链接。
参考链接:
1.Python之文字转图片方法
https://www.jb51.net/article/139839.htm
2.python实现文字转图片
https://zhuanlan.zhihu.com/p/149445150
3.【Python实例分析】批量生成海报--自动添加姓名和二维码
https://blog.csdn.net/aa12551827/article/details/109029222
4.python使用PIL给图片添加文字生成海报示例
http://www.zzvips.com/article/151118.html
5.python之qrcode模块生成二维码
https://www.jianshu.com/p/c0073c6aa544
6.Python使用qrcode二维码库生成二维码方法详解
https://www.jb51.net/article/180609.htm
7.Python往图片写入文字,插入图片的方法
https://blog.csdn.net/caimengxin/article/details/119793566
·················END·················
你好,我是二大爷,
革命老区外出进城务工人员,
互联网非早期非专业站长,
喜好python,写作,阅读,英语
不入流程序,自媒体,seo . . .
公众号不挣钱,交个网友。
本文分享自 Python与SEO学习 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有