首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >文字转图片,文字水印图片,合成图片,教你 Python 生成网站原创配图!

文字转图片,文字水印图片,合成图片,教你 Python 生成网站原创配图!

作者头像
二爷
发布2022-06-14 16:34:55
8.1K0
发布2022-06-14 16:34:55
举报
文章被收录于专栏:二爷记二爷记

又是为站佬们服务(写)水文的一篇,如何应用python来生成或者说是合成自己的原创图片,适合各位站群大佬哥们生成自己的图片,避免没有配图或者侵权碰瓷的尴尬,当然本渣渣这里分享的仅仅是源码demo,后续使用到生产上,还是需要修改的。

随着互联网越来越规范,关于版权方面的意思也愈发增强,同时各种维权,以及侵权时有发生,而网站配图还是需要有的,毕竟图文并茂,同时网页快照能有图片,无疑是非常有利于用户及搜索引擎的。

下面本渣渣就通过几个 demo 来为大家简单谈谈如何应用 Python 生成自己网站的原创图片,麻麻再也不用担心我的网站配图了!

使用到的第三方库
  1. pygame

库安装

pip install pygame
  1. PIL

库安装

pip install pygame
  1. qrcode

库安装

pip install qrcode
几个简单的demo源码参考
  1. 应用 pygame 库文字转图片
#文字生成图片
#微信: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")#图片保存地址

运行效果:

  1. 应用 PIL 库文字转图片
#文字生成图片
#微信: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比较适合成语、词语、文学类网站生成配图使用!

  1. 应用 PIL 库合并图片
#合成图片
#微信: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')  # 保存海报

运行效果:

  1. 应用 PIL 库文字写入图片或生成水印图片
#文本写入图片
#微信: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")  #保存图片

运行效果:

  1. 应用 qrcode 库文字生成二维码图片
#网址二维码生成图片
#微信: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()

运行效果:

综合应用demo案例:文字水印二维码合成图片
#文字水印二维码合成图片
#微信: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 . . .

公众号不挣钱,交个网友。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python与SEO学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用到的第三方库
  • 几个简单的demo源码参考
  • 综合应用demo案例:文字水印二维码合成图片
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档