千家信息网

怎么使用Python组合图像和文本

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,今天小编给大家分享一下怎么使用Python组合图像和文本的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们
千家信息网最后更新 2026年11月04日怎么使用Python组合图像和文本

今天小编给大家分享一下怎么使用Python组合图像和文本的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

先决条件

  1. 1000x600 像素的图像。

  2. 一些演示图标 100x100 像素。

  3. 熟悉 Pipenv。

  4. 熟悉JupyterLab。

  5. 打开 安装fonts/OpenSans-Bold.ttf.

入门

让我们创建hello-img-layers目录并安装 Pillow。

# Make the `hello-img-layers` directory$ mkdir hello-img-layers$ cd hello-img-layers# Create a folder to place your icons$ mkdir icons# Init the virtual environment$ pipenv --three$ pipenv install pillow$ pipenv install --dev jupyterlab

在这个阶段,将你的 1000x600 图像添加到根目录 ( hello-img-layers) 作为base_img.png(至少这是我使用的)并将你的 100x100 图标添加到hello-img-layers/icons/.# Startup the notebook server

$ pipenv run jupyter-lab# ... Server is now running on http://localhost:8888/lab

创建笔记本

在http://localhost:8888/lab 上,选择从启动器创建一个新的 Python 3 笔记本。

确保此笔记本保存在hello-img-layers/docs/.

我们将创建四个单元来处理这个迷你项目的四个部分:

  1. 加载图像。

  2. 创建目标图像并添加图标层。

  3. 创建文本层。

  4. 保存和显示目标图像。

在图像中加载

本节只是在 var 中加载图像base_img(假如你遵循笔记本在docs文件夹中的目录结构)。

from PIL import Image# Concatenating an imagebase_img = Image.open('../base_img.png')

创建目标图像并添加图标层

我们根据基本图像的宽度和高度在此处创建目标图层,然后将该基本图像粘贴回。

然后我们使用 glob 库来获取我们图标的所有路径并将它们粘贴到基本图像的顶部。

# Add in icons using a globimport globfrom os.path import join, dirname, abspathdst_img = Image.new('RGBA', (base_img.width, base_img.height))dst_img.paste(base_img, (0, 0))icons_dir = join(dirname(abspath("__file__")), '../icons')icons = glob.glob(f"{icons_dir}/*")for i, icon_path in enumerate(icons):    icon = Image.open(icon_path)    # @see https://stackoverflow.com/questions/5324647/how-to-merge-a-transparent-png-image-with-another-image-using-pil    dst_img.paste(icon, (60 + (i * icon.width) + (i * 20), base_img.height - 100 - icon.height), icon)

创建文本层

该层将加载我们的Open Sans字体并将其绘制到图像上。

在max_text_width=25我这里选择的是通过试验和错误。对于不同大小的图像,可能有一种更可重用的方法来处理此问题。

import os# Add your own font infont = ImageFont.truetype(os.path.join('fonts/OpenSans-Bold.ttf'), 58)import textwraptext = "Sample Text that is too long but let us write a bunch anyway"print(dst_img.width)max_text_width = 25wrapped_text = textwrap.wrap(text, width=max_text_width)# setup up a variable to invoke our text methoddraw = ImageDraw.Draw(dst_img)for i, line in enumerate(wrapped_text):        # draw.text((0, height - (i * 20)), line, (0, 0, 0), font=font)        draw.text((60, 100 + (i * 80)),line,(255,255,255),font=font)

保存和显示目标图像

最后,我们将保存并显示我们的基本图像。

dst_img.save('../dest_img.png')# Display the image inlinedisplay(Image.open('../dest_img.png'))

以上就是"怎么使用Python组合图像和文本"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

图像 图标 目标 文本 知识 笔记 笔记本 篇文章 并将 组合 不同 像素 内容 目录 中加 处理 选择 很大 个部 先决条件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 小米移动互联网科技园 百单网互联网科技有限公司怎么样 重生之互联网科技帝国 金融科技 互联网金融 狮子座互联网科技 互联网科技公司介绍 互联网科技大会案例 互联网巨头投资的硬核科技 宁波青枫互联网科技有限公司 阿里巴巴算科技企业还是互联网 团飞科技与伯堂互联网服务平台 重庆互联网医院沙龙医盟信息科技 深圳育鹏互联网科技有限公司招聘 科技类公司包括互联网吗 特约风豹互联网科技为什么扣费 科技互联网海报 新氧科技和美国互联网有关系吗 互联网科技和医药行业 现代互联网科技公司 互联网高科技绘画 互联网金融监管科技数据 美国互联网黑科技 互联网科技美容 甘肃拓世互联网科技有限公司 区块链结合互联网科技 国大互联网教育科技有限公司薪资 35岁以上互联网科技行业 互联网科技创新方面的资料 前海云享互联网科技 武汉亿视互联网科技有限公司
0