【小白学Python】自定义图片的生成(一)

news2024/12/26 11:23:18

目录标题

      • 安装Pillow
      • demo代码
      • 初次代码
      • 计划

个人需要,基于文字生成图片。

除了AI外,对于简单的图片,Python在这方面也非常擅长。

我算是一个Python小白,除了业余时尝试过Python基本语法的练习,从未真正使用过Python。

生成图片开始Python的学习。

对于开发环境的部署及搭建,网上教程比比皆是,我就不在此介绍了。


安装Pillow

搜索了下Pillow库似乎是生成图片的不二选择。
控制台执行pip install Pillow后,
在这里插入图片描述
请注意上述Pillow版本过高很多方法不兼容

我本地安装的这个版本的库

pip install Pillow==9.4.0

demo代码

即时的反馈能够带来成就感,学习新的代码时,获取直观的结果很重要。
我先尝试网上搜一块demo代码能否运行

from PIL import Image, ImageDraw, ImageFont
 
# 设置图片大小
width, height = 800, 800
image = Image.new('RGB', (width, height), color = 'white')
 
# 设置文字
text = "Hello, World!"
font = ImageFont.truetype('arial.ttf', 60)
 
# 获取文字大小
text_width, text_height = font.getsize(text)
 
# 计算文字位置
x = (width - text_width) / 2
y = (height - text_height) / 2
 
# 创建画布
draw = ImageDraw.Draw(image)
 
# 绘制文字
draw.text((x, y), text, font=font, fill='black')
 
# 保存图片
image.save('text_image.png')

生成图片效果如下
在这里插入图片描述

初次代码

1.黑色背景,白色文字
2.更换下面文案测试

from PIL import Image, ImageDraw, ImageFont

# 设置图片大小
width, height = 800, 800
image = Image.new('RGB', (width, height), color='black')

# 设置文字
text = "123456"

# 加载字体文件,并设置字体大小
# 注意:确保arial.ttf字体文件路径是正确的
font = ImageFont.truetype('C:\\Windows\\Fonts\\arial.ttf', 60)
# font.color = 'yellow'
# 创建画布
draw = ImageDraw.Draw(image)

# 使用draw的textsize方法获取文本大小
text_width, text_height = draw.textsize(text, font=font)

# 计算文字位置,使其居中
x = (width - text_width) / 2
y = (height - text_height) / 2

# 绘制文字
draw.text((x, y), text, font=font, fill='white')

# 保存图片
image.save('text_image.png')

执行效果
在这里插入图片描述

计划

明天尝试从txt文本中读取文字,然后生成图片

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

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

相关文章

电流的本质是什么

话说很久以前,科学发现纯靠人眼识别。有一天,泰勒斯(古希腊哲学家,被称为科学的祖师爷)一时手痒,拿着琥珀与皮毛摩擦。 结果他发现那种半透明的小石头,居然产生了吸引小物体的魔力。 面对这个现象,老泰开始…

CRM客户关系管理:全方位客户关系管理解决方案

CRM客户关系管理系统,基于Spring Cloud Alibaba、Spring Boot、MybatisPlus、Redis和VUE3 ElementUI微服务架构,提供全面的客户关系管理功能。系统智能化地管理客户信息、线索跟踪、商机开发、合同管理、回款计划等,助力企业提升客户满意度&a…

资产管理系统是什么?主要有哪些功能?

资产管理系统主要对企业的固定资产、流动资产、长期投资等进行综合管理,通过先进的条形码技术对资产实物从购置、领用、清理、盘点、借用归还、维修到报废进行全方位准确监管。 一、资产管理系统主要包括哪些功能? 1、资产管理 (1&#xf…

掌握Python的全方位教程,2024年最新版本,初学者必备指南

哈喽,大家好!热烈欢迎你迈出成为python开发者的第一步。我想这一定非常激动人心,对吧?无论你是刚刚开始学习编程,还是曾经用过其他语言有一定的编程经验,本书中课程将帮助你加速实现你学习python的目标。作…

vue30:组件通信

父子关系 1:父组件通过props将数据传递给子组件 2:子组件利用$emi通知父组件修改更新

CISP究竟适合谁?这四类人没跑了

在信息技术飞速发展的现在,网络安全已经成为了一个不可忽视的话题。 CISP,即注册信息安全专业人员,是网络安全领域内一项备受认可的专业认证。 但CISP究竟适合谁考呢?这不仅是一个技术问题,更是一个职业规划的问题。…

用友U8 许可更新

当登录U8客户端提示下面的界面时,需要联网更新许可 登录服务器,打开Win下面的许可管理 导入许可——在线同步许可 更新完成即可

重温react-01

创建react项目 // 第一步 npm install create-react-app -g // 第二步 create-react-app my-app目录介绍 my-app/README.md# 项目第三方依赖包node_modules/package.json# 一般用来存放静态依赖public/index.htmlfavicon.ico# 存放项目源代码,注意只有放在scr目录…

java:使用JSqlParser给sql语句增加tenant_id和deleted条件

# 示例代码 【pom.xml】 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-core</artifactId><version>3.4.3.1</version> </dependency>【MyJSqlParserTest.java】 package com.chz.myJSqlParser;pu…

短视频矩阵源码---矩阵托管1000个账号如何正规开发规则实现

一、短视频矩阵源码开发实现规则&#xff1a; 1.首先是确保各个官方平台api接口的稳定性&#xff0c;一定要是各个平台正规的api 2.其次是保证服务器运行&#xff0c;带宽保证能够并行&#xff0c;目前我们这边用的是源码所需服务器配置&#xff1a;规格:最低8核16G2、硬盘:系…

基于Sentry+OpenTelemetry实现微服务前后端全链路监控

文章目录 前⾔背景技术⽅案Sentry私有化部署部署环境准备 项目集成前端后端agent探针集成sentry sdk集成增强探针为⽇志注⼊TraceID异常处理SDK⾃定义开发sentry sdk⾃定义开发⾃定义SentryEvent注⼊otel追踪信息⾃定义全局异常上报issue事件新增动态过滤功能 Java Agent Exten…

【重拾数学知识】导数、极值和最值

前言 在深度学习中&#xff0c;梯度下降法是一种常用的优化算法&#xff0c;用于更新模型参数以最小化损失函数。这梯度下降法中涉及到数学中的导数、极值等相关知识&#xff0c;因此我们重新回顾相关内容&#xff0c;以便加深理解。 相关概念 导数 一个问题 如何求得一个…

Project 项目管理软件真的好用吗?

作为一个普通的职场人&#xff0c;或许只要掌握office全家桶&#xff0c;即可应对大部分工作。 但对项目经理来说&#xff0c;这是远远不够的。项目经理需要实时掌握项目进度、把关项目质量、应对项目风险、实时分析项目数据&#xff0c;做出正确的决策等等… 而拥有一款高效…

开发自动发消息插件需要用到的源代码!

在现今的数字化时代&#xff0c;自动发消息插件成为了许多应用程序中不可或缺的一部分&#xff0c;这些插件能够帮助我们自动化地完成消息发送任务&#xff0c;提高工作效率&#xff0c;节省时间成本。 那么&#xff0c;开发一个自动发消息插件究竟需要用到哪些关键的源代码呢…

C++STL初阶(4):初识vector

vector是一个类模版&#xff0c;是一个顺序容器&#xff0c;底层思维就是顺序表&#xff0c;而顺序表的本质就是一个可以改变size的数组。本篇基于string的学习基础&#xff0c;我们对vector进行一个大致的了解和学习 1.基本介绍 1. vector 是表示可变大小数组的序列容器&#…

【Unity自动化游戏框架】通用自动化游戏框架 爽到起飞的工作流 巨幅提升效率 质量 产能

https://github.com/sunsvip/GF_HybridCLRhttps://github.com/sunsvip/GF_HybridCLR 开始GF_HybridCLR自动化通用游戏框架&#xff0c;功能设计和用法的系列博文&#xff1b; GF_HybridCLR通用框架介绍 自动化工作流框架打包/HybridCLR热更流程 万人同屏战斗项目模板 前言: &…

2025年QS世界大学排名,美国大学表现如何?

大多数访问学者申请&#xff0c;在探讨QS大学排名中美国大学的表现时&#xff0c;我们不难发现这些学府在全球高等教育舞台上占据着举足轻重的地位。QS排名作为评估全球大学综合实力的重要指标之一&#xff0c;充分展示了美国大学在学术声誉、科研实力、教学质量和国际影响力等…

57.WEB渗透测试-信息收集- 端口、目录扫描、源码泄露(5)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;56.WEB渗透测试-信息收集- 端口、目录扫描、源码泄露&#xff08;4&#xff09; 下载网站…

【PowerDesigner】PDM生成建表脚本

目录 &#x1f30a;1. PowerDesigner简介 &#x1f30d;1.1 常用模型文件 &#x1f30d;1.2 PowerDesigner使用环境 &#x1f30a;2. PDM生成建表脚本 &#x1f30a;3. 研究心得 &#x1f30a;1. PowerDesigner简介 &#x1f30d;1.1 常用模型文件 主要使用PowerDesigne…

2024年制作AI问答机器人给企业带来的几大好处

引言 在当今数字化时代&#xff0c;企业需要不断寻求创新&#xff0c;以提升客户服务水平、降低成本&#xff0c;并改善用户体验。其中&#xff0c;AI问答机器人作为一种智能化解决方案&#xff0c;正在成为越来越多企业的首选。本文将探讨制作AI问答机器人给企业内外部带来的…