怎么使用Python代码在图片里面加文字

在Python中,给图片添加文字可以使用Pillow库(PIL的一个分支),它是一个强大的图像处理库。如果你还没有安装Pillow,可以通过pip安装:

pip install Pillow

下面使用一个简单的示例,演示如何使用Pillow库在图片中添加文字:

from PIL import Image, ImageDraw, ImageFontdef add_text_to_image(image_path, text, position=(10, 10), font_path='simsun.ttc', font_size=30, color=(255, 255, 255)):"""在图片上添加文字:param image_path: 图片路径:param text: 要添加的文本:param position: 文本位置,默认为左上角:param font_path: 字体文件路径,默认使用arial字体:param font_size: 字体大小:param color: 文字颜色,默认为白色"""# 打开图片image = Image.open(image_path)draw = ImageDraw.Draw(image)# 加载字体,确保font_path指向一个有效的字体文件try:font = ImageFont.truetype(font_path, font_size)except IOError:print("字体文件未找到,请检查font_path路径是否正确。")return# 在图片上添加文字draw.text(position, text, fill=color, font=font)# 保存或显示图片# image.show() # 显示图片output_path = 'image_with_text.png' # 输出图片的路径image.save(output_path)print(f"带有文字的图片已保存至: {output_path}")# 使用示例
image_path = 'example.png' # 你的图片路径
add_text_to_image(image_path, "Hello, World!", position=(100, 100), color=(0, 0, 0))

原始图片:
在这里插入图片描述

最终效果:
在这里插入图片描述

这段代码定义了一个add_text_to_image函数,接受图片路径、要添加的文字、位置、字体、字体大小、颜色等参数。请确保指定的字体文件路径是正确的,并根据需要调整其他参数。如果只需要基本字体,通常可以在系统字体目录下找到(例如Windows的C:\Windows\Fonts),或者你可以下载特定的字体文件并提供其路径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/845620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TCP的重传机制

TCP 是一个可靠的传输协议,解决了IP层的丢包、乱序、重复等问题。这其中,TCP的重传机制起到重要的作用。 序列号和确认号 之前我们在讲解TCP三次握手时,提到过TCP包头结构,其中有序列号和确认号, 而TCP 实现可靠传输…

数据分析案例一使用Python进行红酒与白酒数据数据分析

源码和数据集链接 以红葡萄酒为例 有两个样本: winequality-red.csv:红葡萄酒样本 winequality-white.csv:白葡萄酒样本 每个样本都有得分从1到10的质量评分,以及若干理化检验的结果 #理化性质字段名称1固定酸度fixed acidity2挥发性酸度volatile acidity3柠檬酸…

Lesson6--排序(初级数据结构完结篇)

【本节目标】 1. 排序的概念及其运用 2. 常见排序算法的实现 3. 排序算法复杂度及稳定性分析 1.排序的概念及其运用 1.1排序的概念 排序 :所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来…

Thread的stop和interrupt的区别

Thread.stop Thread.stop()方法已被废弃。 因为本质上它是不安全的,使用该方法可能会导致数据、资源不一致的问题, public class ThreadDemo {static class MyThread extends Thread {Overridepublic void run() {while (true) {try {Thread.sleep(10…

解决Windows 10通过SSH连接Ubuntu 20.04时的“Permission Denied”错误

在使用SSH连接远程服务器时,我们经常可能遇到各种连接错误,其中“Permission denied, please try again”是较为常见的一种。本文将分享一次实际案例的解决过程,帮助你理解如何排查并解决这类问题。 问题描述 在尝试从Windows 10系统通过SS…

面试题 17.05. 字母与数字(前缀和)

给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。 返回该子数组,若存在多个最长子数组,返回左端点下标值最小的子数组。若不存在这样的数组,返回一个空数组。 示例 1: 输入: ["…

openssl 常用命令demo

RSA Private Key的结构(ASN.1) RSAPrivateKey :: SEQUENCE { version Version, modulus INTEGER, -- n publicExponent INTEGER, -- e privateExponent INTEGER, -- d prime1 INTEGER, -- …

嵌入式人工智能开发:基于TensorFlow Lite和OpenCV的实时姿态估计算法实现

文章目录 引言环境准备人工智能在嵌入式系统中的应用场景代码示例常见问题及解决方案结论 1. 引言 在嵌入式系统中集成人工智能(AI)技术已经成为一种重要的发展方向。实时姿态估计是AI在嵌入式领域的一个高级应用,能够在资源受限的环境中实…

海外动态IP代理可以用来批量注册邮箱吗?

无论是个人还是企业,都需要使用邮箱进行沟通、注册账号、接收通知等多种用途。然而,由于互联网服务商为了防止滥用和垃圾邮件的传播,通常对注册邮箱设置了一定的限制,如IP限制、验证码验证等。为了解决这些问题,海外动…

GPT LoRA 大模型微调,生成猫耳娘

往期热门专栏回顾 专栏描述Java项目实战介绍Java组件安装、使用;手写框架等Aws服务器实战Aws Linux服务器上操作nginx、git、JDK、VueJava微服务实战Java 微服务实战,Spring Cloud Netflix套件、Spring Cloud Alibaba套件、Seata、gateway、shadingjdbc…

关于ida如何进行远程linux调试(详解)

首先我们需要安装工具软件VMware虚拟机和finalshell,并在虚拟机中安装centos 7系统,还要将finalshell连接到该系统中,具体操作可以去b站搜黑马Linux学习,学完该课程的p5,p6,p8即可,我接下来讲的…

[Linux]vsftp配置大全---超完整版

[Linux]vsftp配置大全---超完整版 以下文章介绍Liunx 环境下vsftpd的三种实现方法 一、前言 Vsftp(Very Secure FTP)是一种在Unix/Linux中非常安全且快速稳定的FTP服务器,目前已经被许多大型站点所采用,如ftp.redhat.com,ftp.kde.org,ftp.gnome.org.等。…

js:flex弹性布局

目录 代码&#xff1a; 1、 flex-direction 2、flex-wrap 3、justify-content 4、align-items 5、align-content 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewp…

Python自然语言处理(NLP)库之NLTK使用详解

概要 自然语言处理(NLP)是人工智能和计算机科学中的一个重要领域,涉及对人类语言的计算机理解和处理。Python的自然语言工具包(NLTK,Natural Language Toolkit)是一个功能强大的NLP库,提供了丰富的工具和数据集,帮助开发者进行各种NLP任务,如分词、词性标注、命名实体…

Excel 将分组头信息填入组内明细行

Excel由多个纵向的分组表组成&#xff0c;组之间由空白行隔开&#xff0c;每组第1、2行的第2格是分组表头&#xff0c;第3行是列头&#xff0c;第1列和第6列数据是空白的&#xff1a; ABCDEF1ATLANTIC SPIRIT2Looe3VesselSpeciesSizeKgDateLocation4POLLACK22.523/04/20245POL…

华为 CANN

华为 CANN 1 介绍1.1 概述1.2 CANN 是华为昇腾计算产业的重要一环1.3 昇腾系列处理器1.4 昇腾 AI 产业1.5 从 AI 算法到产品化落地流程1.6 多样性计算架构1.7 人工智能各层级图示1.8 人工智能技术发展历史 2 CANN vs CUDA支持平台优化方向编程接口生态系统与应用性能与功能 3 C…

SwiftUI中SafeArea的管理与使用(ignoresSafeArea, safeAreaPadding, safeAreaInset)

SafeArea是指不与视图控制器提供的导航栏、选项卡栏、工具栏或其他视图重叠的内容空间。 在UIKit中&#xff0c;开发人员需要使用safeAreaInsets或safeAreaLayoutGuide来确保视图被放置在界面的可见部分。 SwiftUI彻底简化了上述过程&#xff0c;除非开发者明确要求视图突破安…

Java—— StringBuilder 和 StringBuffer

1.介绍 由于String的不可更改特性&#xff0c;为了方便字符串的修改&#xff0c;Java中又提供了StringBuilder和Stringbuffer类&#xff0c;这两个类大部分功能是相同的&#xff0c;以下为常用方法&#xff1a; public static void main(String[] args) {StringBuilder sb1 n…

百度中心之星

目录 新材料 星际航行 新材料 直接模拟&#xff1a;因为要考虑上次出现的位置&#xff0c;所以使用map映射最好&#xff0c;如果没有出现过就建立新映射&#xff0c;如果出现过但是已经反应过就跳过&#xff0c;如果出现过但是不足以反应&#xff0c;就建立新映射&#xff0c;…

react 怎样配置ant design Pro 路由?

Ant Design Pro 是基于 umi 和 dva 的框架&#xff0c;umi 已经预置了路由功能&#xff0c;只需要在 config/router.config.js 中添加路由信息即可。 例如&#xff0c;假设你需要为 HelloWorld 组件创建一个路由&#xff0c;你可以将以下代码添加到 config/router.config.js 中…