跳至页脚内容
PYTHON 帮助

imageio python(开发人员如何使用)

Imageio 是一个多功能的 Python 库,旨在读取和写入范围广泛的图像数据,包括动画图像、体积数据和科学格式。 它提供了简单且一致的 API,这使得它成为处理图像数据处理任务的开发人员和数据科学家的绝佳选择。 In this article, we will look into how Imageio can be used to read and write images, later we will also look into IronPDF from Iron Software to generate PDF documents. 这两个软件包都可以用于创建图片和将图像存储在 PDF 文档中,用于存档。

为什么使用 Imageio?

Imageio 提供了几项优势:

  1. 广泛的格式支持:支持多种图像格式,包括 PNG、JPEG、GIF、TIFF 等。
  2. 易于使用:API 使用简单,即使是初学者也能轻松掌握。
  3. 跨平台兼容性:Imageio 可在各种操作系统上运行,包括 Windows、macOS 和 Linux。
  4. 与其他库的集成:可以与其他 Python 库如 NumPy 和 Matplotlib 一起使用,以进行高级图像处理和可视化。

开始使用 Imageio

安装

您可以使用 pip 安装 Imageio:

pip install imageio
pip install imageio
SHELL

基本用法

这里是一个简单示例,演示如何使用 Imageio 读取和写入图像:

import imageio.v3 as iio

# Read an image
image = iio.imread('image.jpg')
print(image.shape)  # Output: (329, 559, 3)

# Write the image to a new file
iio.imwrite('newimage.jpg', image)
import imageio.v3 as iio

# Read an image
image = iio.imread('image.jpg')
print(image.shape)  # Output: (329, 559, 3)

# Write the image to a new file
iio.imwrite('newimage.jpg', image)
PYTHON

在这个示例中,Imageio 读取一个图像文件并打印其形状。 然后将图像写入新的文件。

输出

imageio python(它如何为开发人员工作):图 1 - 使用 Imageio 读取和写入图像

高级功能

Imageio 为更复杂的图像处理任务提供了许多高级功能:

  1. 从各种来源读取:Imageio 可以从文件、URL 甚至字节流中读取图像。
  2. 动画图像:支持读取和写入如 GIF 这样的动画图像。
  3. 视频处理:Imageio 能够处理视频文件,允许您读取和写入视频帧。
  4. 体积数据:支持读取和写入体积数据,非常适合科学应用。

示例:创建一个 GIF

这是一个使用 Imageio 从一系列图像创建 GIF 的示例:

import imageio.v2 as imageio
import numpy as np  # Import NumPy for numerical operations

# List of image file paths
image_files = ['img1.jpg', 'img2.jpg']  # Specify your image files here

# Read images and store them in a list
images = []
for file in image_files:
    images.append(imageio.imread(file))

# Save the images as a GIF
imageio.mimsave('output2.gif', images, duration=1.0)  # Duration is in seconds per frame
import imageio.v2 as imageio
import numpy as np  # Import NumPy for numerical operations

# List of image file paths
image_files = ['img1.jpg', 'img2.jpg']  # Specify your image files here

# Read images and store them in a list
images = []
for file in image_files:
    images.append(imageio.imread(file))

# Save the images as a GIF
imageio.mimsave('output2.gif', images, duration=1.0)  # Duration is in seconds per frame
PYTHON

在这个示例中,Imageio 读取一系列图像并创建一个动画 GIF。

imageio python(它如何为开发人员工作):图 2 - GIF 输出

IronPDF 简介

imageio python(它如何为开发人员工作):图 3 - IronPDF:Python PDF 库

IronPDF 是一个功能强大的 Python 库,旨在使用 HTML、CSS、图像和 JavaScript 创建、编辑和签署 PDF。 它提供商业级性能,内存占用低且接口简便。 其主要特点包括:

HTML到PDF转换:

转换HTML文件、HTML字符串和URL为PDF。 例如,使用Chrome PDF渲染器将网页渲染为PDF。

跨平台支持:

IronPDF设计用于Python 3+,也可以运行在Windows、Mac、Linux或云平台上。
IronPDF is also available in .NET, Java, Python, and Node.js.

编辑和签署:

设置属性,使用密码和权限添加安全性,并为您的PDF应用数字签名。

页面模板和设置:

您可以自定义 PDF 的页眉、页脚、页码和可调节的边距。 它还支持自定义纸张大小和响应式布局。

标准合规:

符合 PDF 标准,包括 PDF/A 和 PDF/UA,支持 UTF-8 字符编码,并管理诸如图像、CSS 和字体等资产。

安装

 pip install ironpdf

使用 IronPDF 和 Imageio 生成 PDF 文档

前提条件

  1. 确保安装了 Visual Studio Code 作为代码编辑器。
  2. 安装了Python 3版本

首先,让我们创建一个Python文件以添加我们的脚本。

打开 Visual Studio Code 并创建一个文件,ImageioDemo.py

安装必要的库:

pip install imageio
pip install ironpdf
pip install imageio
pip install ironpdf
SHELL

然后添加以下代码来演示 IronPDF 和 Imageio python 软件包的使用。

import imageio.v2 as imageio
import numpy as np
from ironpdf import * 

# Apply your license key
License.LicenseKey = "your-key"

# List of image file paths
image_files = ['img1.jpg', 'img2.jpg', 'img3.jpg']

# Read images and store them in a list
images = []
for file in image_files:
    images.append(imageio.imread(file))

# Save the images as a GIF
imageio.mimsave('output2.gif', images, duration=0.5)  # Duration is in seconds per frame

# Convert the GIF to PDF
ImageToPdfConverter.ImageToPdf("output2.gif").SaveAs("ironPdf-imageio.pdf")
import imageio.v2 as imageio
import numpy as np
from ironpdf import * 

# Apply your license key
License.LicenseKey = "your-key"

# List of image file paths
image_files = ['img1.jpg', 'img2.jpg', 'img3.jpg']

# Read images and store them in a list
images = []
for file in image_files:
    images.append(imageio.imread(file))

# Save the images as a GIF
imageio.mimsave('output2.gif', images, duration=0.5)  # Duration is in seconds per frame

# Convert the GIF to PDF
ImageToPdfConverter.ImageToPdf("output2.gif").SaveAs("ironPdf-imageio.pdf")
PYTHON

代码解释

此脚本将图像文件列表(img1.jpgimg2.jpgimg3.jpg)转换为 GIF,然后将该 GIF 转换为 PDF 文档。

  1. 导入库

    • imageio.v2 as imageio:导入 imageio 库用于图像处理。
    • numpy as np:导入 NumPy 进行数值运算(尽管在提供的代码片段中未显式使用)。
    • from ironpdf import *:从 IronPDF 库导入必要的函数。
  2. 许可证密钥

    • License.LicenseKey = "your-key":设置 IronPDF 库的许可证密钥。 将 "your-key" 替换为实际的许可证密钥。
  3. 图像文件列表

    • image_files = ['img1.jpg', 'img2.jpg', 'img3.jpg']:定义一个包含三个图像文件路径的列表(img1.jpgimg2.jpgimg3.jpg)。
  4. 读取图像

    • for file in image_files: images.append(imageio.imread(file)):对 image_files 中的每个文件路径迭代,使用 imageio.imread() 读取图像,并将图像数据附加到 images 列表中。
  5. 创建 GIF

    • imageio.mimsave('output2.gif', images, duration=0.5):将存储在 images 列表中的图像保存为名为 'output2.gif' 的 GIF 文件。 参数 duration=0.5 指定 GIF 中每帧的持续时间(以秒为单位)。
  6. 将 GIF 转换为 PDF
    • ImageToPdfConverter.ImageToPdf("output2.gif").SaveAs("ironPdf-imageio.pdf"):将之前步骤生成的 GIF 文件("output2.gif")使用 IronPDF 的 ImageToPdfConverter 转换为 PDF 并保存为 "ironPdf-imageio.pdf"

该脚本首先读取多个图像文件,将其编译成具有指定帧持续时间的 GIF 动画,然后使用 IronPDF 库的功能将此 GIF 动画转换为 PDF 文档。 GIF 图像作为一系列图像存储在 PDF 中,如下所示。

输出

imageio python(它如何为开发人员工作):图 4 - 动画 GIF

PDF

imageio python(它如何为开发人员工作):图 5 - PDF 输出

IronPDF 许可证

IronPDF在Python中通过许可证密钥运行。 IronPDF for Python 提供了一个免费试用许可证密钥,允许用户在购买之前查看其广泛的功能。

在开始使用IronPDF包之前,将许可证密钥置于脚本的开始处:

from ironpdf import * 
# Apply your license key
License.LicenseKey = "your-key"
from ironpdf import * 
# Apply your license key
License.LicenseKey = "your-key"
PYTHON

结论

Imageio 是一个用于在 Python 中进行图像处理的强大而灵活的库。 它的易用性、广泛的格式支持和高级功能使其成为开发人员和数据科学家的宝贵工具。 无论您是需要进行简单的图像操作,还是处理复杂的图像/体积数据,Imageio 都能提供您所需的功能,并且易于使用。 IronPDF 是一个多功能的 Python 库,旨在创建、操作和转换 PDF 文档。 它支持从头开始生成 PDF,将 HTML 和图像转换为 PDF,以及执行各种文档操作,如合并和保护 PDF 文件。 它具有跨平台兼容性,可以无缝集成到 Python 应用程序中,使其成为程序化处理 PDF 相关任务的强大工具。

结合这些库,我们可以进行图像处理并将结果存储在 PDF 格式中用于归档。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。