码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python图片上写中文,添加字幕


    OpenCV不支持中文输入,借用pillow库在图片上添加中文

    环境:

    python=3.7.8, Windows
    
    • 1

    需求的库:

    pip install opencv-python,numpy
    pip install pillow==9.2.0
    
    • 1
    • 2

    说明:

    • 第五行:font_size是字体大小,单个字的长、宽都等于font_size的数值;
    • 第六行:used_color是BGR 格式颜色;
    • 第八行:字体可以在——我的电脑>C盘>windows>Fonts 选择需要的字体文件存入项目中;
    • 第二十八行:used_point是字幕左上角点的坐标;
    import cv2, math
    import numpy as np
    from PIL import Image, ImageFont, ImageDraw
    
    font_size  = 30
    used_color =  (0, 255, 255)
    used_str   = '如果我们想要为中文文本添加样式,可以采用以下代码:'
    used_font  = ImageFont.truetype("STXINWEI.TTF", size= font_size)
    
    
    img_cv  = cv2.imread("test.png")
    h, w = img_cv.shape[0], img_cv.shape[1]
    
    # # 图片长度足够放字幕,不需要换行
    if w / font_size > len(used_str):
        used_len = len(used_str) * font_size
        used_point = ((w / 2) - (used_len / 2), h*0.55)
    
    # # 图片长度不够放字幕,需要换行处理
    else:
        length = math.floor(w / font_size)
        used_str = [used_str[i:i+length] for i in range(0, len(used_str), length)]
        used_str = "\n".join(used_str)
        used_point = (0, h*0.55)
    
    img_pil = Image.fromarray(img_cv)
    draw = ImageDraw.Draw(img_pil)
    draw.text(used_point, used_str, font=used_font, fill= used_color)
    img_now = np.array(img_pil)
    
    cv2.imwrite("out2.png", img_now)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
  • 相关阅读:
    文件管理:文件的逻辑结构
    生成boot.img流程 (makefile文件)
    Linux安装Metasploit与简单介绍
    SpringMVC执行流程-JSP模式
    从事嵌入式工作有哪些优势?
    自定义Dynamics 365实施和发布业务解决方案 3. 开箱即用自定义
    【Markdown】编辑器使用技巧大汇总6。行列式的输入,矩阵的输入(一般化的矩阵,增广矩阵,括号形式的矩阵,有元素省略的矩阵)
    Matlab创建类
    从 C 到 C++ 编程 — 面向对象编程
    第7章-查找
  • 原文地址:https://blog.csdn.net/zzZ_CMing/article/details/133884481
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号