python在图片上添加指定字体的文字

python在图片上添加指定字体的文字,第1张

本文主要介绍如何通过Python在图片上的指定位置添加文字,主要利用两个库OpenCV和PIL。

1.安装OpenCV

pip install opencv-python

2.利用putText方法来实现在图片的指定位置添加文字

putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)

在使用putText方法在图片上添加文字的时, 无法直接添加中文 无法导入字体文件 ,接下来我们利用另一库PIL来解决这个问题。

1.安装PIL库

pip install Pillow

2.添加文字信息

通过加载ttc格式的字体文件,就可以设置显示文字的字体。

我们平时要给图片加水印,但是又不会PS,免不了着急上火,还找不到人,想想还是得自己学一手~

而且图片很多的话,PS还是挺慢的,用Python一键生成即可,效率杠杠的。

准备工作

环境的话我这里使用的是 Python 和 pycharm

如果添加一张图片的水印,两行代码就实现了。

本次使用的模块是 filestools , 第三方模块,咱们需要手动安装一下。

win+r打开搜索框,输入cmd 按确定后d出命令提示符窗口,输入 pip install filestools 即可安装成功。

代码解析

1、单张图片添加水印

模块导入

怎么使用 filestools 模块呢?

首先导入模块里面的一个方法,watermarker ,点上 marker ,然后 import add_mark

add_mark 已经包含了很多方法

file 是添加水印照片 ,mark 使用哪些字作为水印,out 保存的地方 ,color 颜色,size 水印字体的大小,opacity 不透明度,space 字体间距,angle 旋转角度。

假设我要给图片添加上:人生苦短, 快学python

咱们把图片和文字加进去即可,代码如下:

2、批量填加多张图片水印

批量给图片添加的话,需要用到 OS 模块。

导入一下

用os模块读取文件夹所有内容 ,使用 files 接收。

打印一下

现在所有文件名字都有了

通过 for 循环遍历都打印出来

然后将文件添加进去,我们读取的是 img_1 里面的内容,那就把这个文件里的内容都传进去,保存数据的时候,都会保存在这里面。

再改一下透明度

我这里改成0.5

这样就清晰多了~

# -*- coding: utf-8 -*-

import os

def add_text(path,filepath:list):

    path_list = os.listdir(path)

    print(path_list)

    for i in path_list:

        for p in filepath:

            if p == i:

                add_path = os.path.join(path,i)

                file = os.listdir(add_path)

                for i in file:

                    absolute_path = os.path.join(add_path,i)#绝对路径

                    if os.path.isfile(absolute_path) :

                        print(absolute_path)

                        # if os.path.isfile(i):

                        #    filepath, tempfilename = os.path.split(i)  # 拆开

                        #    filename, extension = os.path.splitext(tempfilename)# 获取扩展名

                        f = open(absolute_path, "a+", encoding="utf8")

                        f.write("test\n")

                        f.close()

if __name__ == '__main__':

    add_text(r"F:\test",['a','b'])

#    filepath, tempfilename = os.path.split(i)  # 拆开

#    #filename, extension = os.path.splitext(tempfilename)# 获取扩展名

#    #if filename[]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11950726.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存