python | pyvips,一个神奇的 Python 库
本文来源公众号“python”,仅用于学术分享,侵权删,干货满满。
原文链接:pyvips,一个神奇的 Python 库!
大家好,今天为大家分享一个神奇的 Python 库 - pyvips。
Github地址:https://github.com/libvips/pyvips
在图像处理领域,高效和快速的图像处理工具对于开发者来说至关重要。pyvips 是一个强大的 Python 库,基于 libvips 图像处理库,提供高效、快速且节省内存的图像处理能力。pyvips 支持多种图像格式,并且能够执行各种复杂的图像处理任务,如裁剪、缩放、旋转、滤波等。本文将详细介绍 pyvips 库,包括其安装方法、主要特性、基本和高级功能,以及实际应用场景,帮助全面了解并掌握该库的使用。
1 安装
要使用 pyvips 库,首先需要安装它。可以通过 pip 工具方便地进行安装。
以下是安装步骤:
pip install pyvips
安装完成后,可以通过导入 pyvips 库来验证是否安装成功:
import pyvips
print("pyvips 库安装成功!")
2 特性
-
高效性:基于
libvips,比其他图像处理库(如 PIL、OpenCV)更快且更节省内存。 -
多格式支持:支持多种图像格式,如 JPEG、PNG、TIFF、GIF 等。
-
丰富的图像处理功能:提供多种图像处理操作,如裁剪、缩放、旋转、滤波等。
-
管道操作:支持管道操作,便于处理大图像或批量图像。
-
易于扩展:提供简洁的 API,支持自定义扩展。
3 基本功能
3.1 加载和保存图像
使用 pyvips,可以方便地加载和保存图像。
import pyvips# 加载图像
image = pyvips.Image.new_from_file('example.jpg')# 保存图像
image.write_to_file('output.jpg')
3.2 图像裁剪
pyvips 提供了图像裁剪功能。
import pyvips# 加载图像
image = pyvips.Image.new_from_file('example.jpg')# 裁剪图像
cropped_image = image.crop(100, 100, 200, 200)# 保存裁剪后的图像
cropped_image.write_to_file('cropped_output.jpg')
3.3 图像缩放
pyvips 支持图像缩放。
import pyvips# 加载图像
image = pyvips.Image.new_from_file('example.jpg')# 缩放图像
scaled_image = image.resize(0.5)# 保存缩放后的图像
scaled_image.write_to_file('scaled_output.jpg')
3.4 图像旋转
pyvips 支持图像旋转。
import pyvips# 加载图像
image = pyvips.Image.new_from_file('example.jpg')# 旋转图像
rotated_image = image.rot(90)# 保存旋转后的图像
rotated_image.write_to_file('rotated_output.jpg')
4 高级功能
4.1 图像滤波
pyvips 支持多种图像滤波操作。
import pyvips# 加载图像
image = pyvips.Image.new_from_file('example.jpg')# 应用高斯滤波
filtered_image = image.gaussblur(5)# 保存滤波后的图像
filtered_image.write_to_file('filtered_output.jpg')
4.2 管道操作
pyvips 支持管道操作,可以方便地处理大图像或批量图像。
import pyvips# 加载图像
image = pyvips.Image.new_from_file('example.jpg')# 应用一系列操作
processed_image = image.crop(100, 100, 300, 300).resize(0.5).gaussblur(3)# 保存处理后的图像
processed_image.write_to_file('processed_output.jpg')
4.3 图像合并
pyvips 支持图像合并操作。
import pyvips# 加载图像
image1 = pyvips.Image.new_from_file('example1.jpg')
image2 = pyvips.Image.new_from_file('example2.jpg')# 水平合并图像
merged_image = image1.join(image2, 'horizontal')# 保存合并后的图像
merged_image.write_to_file('merged_output.jpg')
5 实际应用场景
5.1 网站图像处理
在网站开发中,通过 pyvips 对上传的图像进行裁剪、缩放和优化,以提高网站加载速度和用户体验。
import pyvips# 加载上传的图像
image = pyvips.Image.new_from_file('upload.jpg')# 裁剪图像
cropped_image = image.crop(0, 0, 800, 800)# 缩放图像
scaled_image = cropped_image.resize(0.5)# 保存处理后的图像
scaled_image.write_to_file('optimized_output.jpg')
5.2 批量图像处理
在批量图像处理任务中,通过 pyvips 高效地处理大量图像,如缩放、旋转和滤波。
import os
import pyvips# 定义图像处理函数
def process_image(input_path, output_path):image = pyvips.Image.new_from_file(input_path)processed_image = image.resize(0.5).gaussblur(2)processed_image.write_to_file(output_path)# 批量处理图像
input_dir = 'input_images'
output_dir = 'output_images'
for filename in os.listdir(input_dir):if filename.endswith('.jpg'):input_path = os.path.join(input_dir, filename)output_path = os.path.join(output_dir, filename)process_image(input_path, output_path)
5.3 图像分析
在图像分析任务中,通过 pyvips 提取图像特征并进行分析,如直方图分析、颜色统计等。
import pyvips# 加载图像
image = pyvips.Image.new_from_file('example.jpg')# 计算图像直方图
histogram = image.hist_find()# 显示直方图信息
print(histogram)
6 总结
pyvips 库是一个功能强大且易于使用的图像处理工具,能够帮助开发者在 Python 项目中高效地进行图像处理。通过支持多格式图像、多种图像处理操作、管道操作和高效的内存管理,pyvips 能够满足各种复杂的图像处理需求。本文详细介绍了 pyvips 库的安装方法、主要特性、基本和高级功能,以及实际应用场景。希望本文能帮助大家全面掌握 pyvips 库的使用,并在实际项目中发挥其优势。
THE END !
文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。
相关文章:
python | pyvips,一个神奇的 Python 库
本文来源公众号“python”,仅用于学术分享,侵权删,干货满满。 原文链接:pyvips,一个神奇的 Python 库! 大家好,今天为大家分享一个神奇的 Python 库 - pyvips。 Github地址:https…...
STM32利用FreeRTOS实现4个led灯同时以不同的频率闪烁
在没有接触到FreeRTOS时,也没有想过同时叫两个或两个以上的led灯闪烁的想法,接触后,发现如果想叫两个灯同时以不同的频率闪烁,不能说是不可能,就算是做到了也要非常的麻烦。但是学习了FreeRTOS后,发现要想同…...
深入Laravel事件系统:创建与使用事件的指南
Laravel的事件系统是一种强大的机制,它允许你将应用程序的行为封装成事件,然后在适当的时候触发这些事件。这不仅有助于代码的解耦,还提高了应用程序的可维护性和可扩展性。本文将详细介绍如何在Laravel中创建和使用事件,包括事件…...
element-ui操作表格行内容如何获取当前行索引?
需求: 根据每个用户的提交次数、撤回次数,动态计算出实际次数,并且提交次数不能小于撤回次数 <template><div><el-table:data"tableData"style"width: 80%"border><el-table-columnprop"date&…...
代发考生战报:南京考场华为售前HCSP H19-411考试通过
代发考生战报:南京考场华为售前HCSP H19-411考试通过,客服给的题库非常稳定,考试遇到2个新题,剩下全是题库里的原题,想考的放心考吧,考场服务挺好,管理员带着做签名和一些考试说明介绍清楚&…...
【Spring Boot】Spring原理:Bean的作用域和生命周期
目录 Spring原理一. 知识回顾1.1 回顾Spring IOC1.2 回顾Spring DI1.3 回顾如何获取对象 二. Bean的作用域三. Bean的生命周期 Spring原理 一. 知识回顾 在之前IOC/DI的学习中我们也用到了Bean对象,现在先来回顾一下IOC/DI的知识吧! 首先Spring IOC&am…...
MinIO:开源对象存储解决方案的领先者
MinIO:开源对象存储解决方案的领先者 MinIO 是一款开源的对象存储系统,致力于提供高性能、可伸缩、安全的数据存储解决方案。 官方解释:MinIO 是一个基于Apache License v2。0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适…...
15、电科院FTU检测标准学习笔记-基本性能
作者简介: 本人从事电力系统多年,岗位包含研发,测试,工程等,具有丰富的经验 在配电自动化验收测试以及电科院测试中,本人全程参与,积累了不少现场的经验 ———————————————————…...
古建筑倾斜在线监测系统:科技守护历史的创新实践
在文化遗产保护的广阔领域中,古建筑的健康监测占据着举足轻重的地位。然而,传统的监测方法往往受限于布线复杂、安装难度大以及对古建筑本体可能造成的伤害等问题。近年来,一种新型的古建筑倾斜在线监测系统应运而生,它…...
DP(2) | Java | LeetCode 62, 63, 343, 96 做题总结(96 未完)
62.不同路径 我的代码(报错) 写的过程中感到很迷惑的点:①二维数组和这道题目的对应弄不清除,m n的初始化 是 dp[m][n] 还是 dp[n][m] ② class Solution {public int uniquePaths(int m, int n) {int[][]dp new int[m1][n1];d…...
Ubuntu实战续篇:Apache httpd轻松搭建高效代理服务器
Ubuntu实战续篇:Apache httpd轻松搭建高效代理服务器 一、前言二、Ubuntu下的Apache配置文件概览三、配置并启用 Apache 代理服务 作者:高玉涵 时间:2024.7.11 21:06 博客:blog.csdn.net/cg_i 环境:Ubuntu 22.04.4 LTS…...
Linux 程序卡死的特殊处理
一、前言 Linux环境。 我们在日常编写的程序中,可能会出现一些细节问题,导致程序卡死,即程序没法正常运行,界面卡住,也不会闪退... 当这种问题出现在客户现场,那就是大问题了。。。 当我们暂时还无法排…...
(C++字符串02) 反转字符串中的单词
151、反转字符串中的单词 先将字符串的里的多余空格去掉,时间复杂度:O(n),再将字符串整体反转,时间复杂度:O(n),最后反转每一个单词,时间复杂度:O(n); class Solution { public:string reverseWords(stri…...
一致性Hash问题及解决方案
Hash算法的应用场景 请求的负载均衡 Nginx的ip_hash策略可以在客户端ip不发生变化的情况下,将其发出的请求始终路由到同一个目标服务器上,实现会话粘滞,避免处理session共享问题。 如果没有ip_hash策略,可以通过维护一张映射表的…...
【接口设计】如何设计统一 RESTful 风格的数据接口
如何设计统一 RESTful 风格的数据接口 1.版本控制1.1 通过 URL1.2 通过自定义请求头1.3 通过 Accept 标头 2.过滤信息3.确定 HTTP 的方法4.确定 HTTP 的返回状态5.定义统一返回的格式 近年来,随着移动互联网的发展,各种类型的客户端层出不穷。如果不统一…...
【备战秋招】——算法题目训练和总结day3
【备战秋招】——算法题目训练和总结day3😎 前言🙌BC149简写单词题解思路分析代码分享: dd爱框框题解思路分析代码分享: 除2!题解思路分析代码分享: 总结撒花💞 😎博客昵称ÿ…...
Git 操作总结
1. 安装、Git 环境配置 1.1 安装 Git 官方版本可以在 Git 官方网站下载:打开 https://git-scm.com/download/win,选择相应版本即可。 Git 安装完成后,可以在开始菜单中看到 Git 的三个启动图标(Git Bash、Git CMD、Git GUI&…...
若依 ruoyi-vue SpringBoot highlight-textarea 输入框敏感词关键词高亮标红(二)
参考文章,非常感谢大佬的分享 实现可高亮的输入框 — HighlightTextarea GitHub:highlight-textarea 可看作者上一篇文章 若依 ruoyi-vue SpringBoot聊天敏感词过滤sensitive-word(一) 效果图 审核时,输入框高亮敏感词ÿ…...
33 IRF配置思路
IRF配置思路网络括谱图 主 Ten-GigabitEthernet 1/0/49 Ten-GigabitEthernet 1/0/50 Ten-GigabitEthernet 1/0/51 备 Ten-GigabitEthernet 2/0/49 Ten-GigabitEthernet 2/0/50 Ten-GigabitEthernet 2/0/51 思路 主 1 利用console线进入设备的命令行页面去更改…...
Dify中的RAG和知识库
一.RAG 基本架构 当用户提问 “美国总统是谁?” 时,系统并不是将问题直接交给大模型来回答,而是先将用户问题在知识库中进行向量搜索,通过语义相似度匹配的方式查询到相关的内容(拜登是美国现任第46届总统…࿰…...
HTML函数在高负载下自动关机是硬件问题吗_过热保护机制【汇总】
HTML没有函数,更不会导致关机;所谓“HTML函数关机”是误解,实际是高负载JS/渲染引发CPU/GPU过热,触发系统级温控断电。HTML 函数在高负载下自动关机?压根不存在这个函数HTML 是标记语言,没有“函数”&#…...
效率倍增:用快马打造Ollama多模型对比测试工具
最近在折腾本地大模型时,发现Ollama虽然能方便地运行多个模型,但每次想对比不同模型的表现都得手动切换,特别影响效率。于是琢磨着做个工具来提升测试效率,顺便把实现过程记录下来分享给大家。 需求痛点分析 本地测试不同模型时&a…...
Axure中文界面终极配置指南:3分钟免费实现Axure RP 9/10/11快速汉化
Axure中文界面终极配置指南:3分钟免费实现Axure RP 9/10/11快速汉化 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn …...
firefly_star
Qt是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本笔记将重点介绍QSpinBox数值微调组件的常用方法及灵活应用。…...
3大核心技术深度解析:D3KeyHelper如何重新定义暗黑3游戏辅助体验
3大核心技术深度解析:D3KeyHelper如何重新定义暗黑3游戏辅助体验 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper D3KeyHelper是一款基于A…...
如何通过智能检测实现微信社交关系的高效管理?
如何通过智能检测实现微信社交关系的高效管理? 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends 在数字…...
IQuest-Coder-V1功能实测:一键生成高质量SQL查询脚本
IQuest-Coder-V1功能实测:一键生成高质量SQL查询脚本 在数据驱动的时代,SQL查询脚本的编写是每个数据分析师、后端工程师乃至产品经理的日常。面对复杂的业务逻辑和多表关联,手动编写SQL不仅耗时,还容易出错。有没有一种工具&…...
QMCDecode:让QQ音乐加密文件重获自由的macOS工具
QMCDecode:让QQ音乐加密文件重获自由的macOS工具 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转换结…...
5步打造清爽右键菜单:ContextMenuManager开源工具完全指南
5步打造清爽右键菜单:ContextMenuManager开源工具完全指南 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 当你在Windows系统中右键点击文件时&#…...
Qwen3.5-4B-Claude-Opus-GGUF一键部署:CSDN镜像平台Web化推理服务上线指南
Qwen3.5-4B-Claude-Opus-GGUF一键部署:CSDN镜像平台Web化推理服务上线指南 1. 模型与平台介绍 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF 是一个基于 Qwen3.5-4B 的推理蒸馏模型,重点强化了结构化分析、分步骤回答、代码与逻辑类问题的处理…...
