第三章 解析python中opencv,matpoltlib与pillow对JPG和PNG读取和写入(工具)

简介

特性 OpenCV Matplotlib Pillow
文件读写 cv2.imread/imwrite plt.imread/imsave Image.open/save
颜色空间 BGR RGB RGB
透明度支持 仅 PNG PNG 和 JPG PNG 和 JPG
压缩 有损 无损 有损/无损
适用场景 图像处理/分析 图像显示/可视化 图像处理/编辑

opencv

python 复制代码
import cv2

# 打开PNG图片文件
png_image = cv2.imread('image.png', cv2.IMREAD_UNCHANGED)  # 使用cv2.IMREAD_UNCHANGED标志以保持透明度信息
# 打开JPG图片文件
jpg_image = cv2.imread('image.jpg')

# 创建新的图像(例如:创建一个黑色的200x200图片)
import numpy as np
new_image = np.zeros((200, 200, 3), dtype=np.uint8)  # 创建一个全为黑色的图像

# 保存PNG图像
cv2.imwrite('new_image.png', new_image)  
# 保存JPG图像
cv2.imwrite('new_image.jpg', new_image)

matplotlib

python 复制代码
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np

# 打开PNG图片文件
png_image = mpimg.imread('image.png')
plt.imshow(png_image)
plt.axis('off')  # 关闭坐标轴
plt.savefig('saved_image.png', bbox_inches='tight', pad_inches=0)  # 保存为PNG格式

# 打开JPG图片文件
jpg_image = mpimg.imread('image.jpg')
plt.imshow(jpg_image)
plt.axis('off')  # 关闭坐标轴
plt.savefig('saved_image.jpg', bbox_inches='tight', pad_inches=0)  # 保存为JPG格式

# 创建一个新的图像(例如:创建一个红色的200x200图像)
new_image = np.zeros((200, 200, 3), dtype=np.uint8)
new_image[:, :] = [255, 0, 0]  # 将新图像设为红色

# 保存新图像为PNG格式
plt.imshow(new_image)
plt.axis('off')  # 关闭坐标轴
plt.savefig('new_image.png', bbox_inches='tight', pad_inches=0)

# 保存新图像为JPG格式
plt.imshow(new_image)
plt.axis('off')  # 关闭坐标轴
plt.savefig('new_image.jpg', bbox_inches='tight', pad_inches=0)

pillow

python 复制代码
from PIL import Image

# 打开PNG图片文件
png_image = Image.open('image.png')

# 打开JPG图片文件
jpg_image = Image.open('image.jpg')

# 创建新的图像(例如:创建一个红色的200x200图像)
new_image = Image.new('RGB', (200, 200), color = (255, 0, 0))

# 保存PNG图像
new_image.save('new_image.png')

# 保存JPG图像
new_image.save('new_image.jpg')
相关推荐
冬奇Lab3 小时前
每日一个开源项目(第149篇):RAG-Anything - 把图片、表格、公式当成一等公民的多模态 RAG 框架
人工智能·开源
米小虾4 小时前
AI Agent 安全实战指南:当智能体开始"不听话",开发者该如何应对?
人工智能·安全·agent
IT_陈寒5 小时前
Vite的热更新突然不香了,排查三小时差点砸键盘
前端·人工智能·后端
阿里云大数据AI技术7 小时前
构建高转化海外电商搜索:阿里云OpenSearch行业算法版的全链路智能优化策略实战
人工智能·搜索引擎
Awu12277 小时前
⚡从零开发 Agent CLI(五)实现一个可治理、可扩展的工具系统
前端·人工智能·claude
字节跳动视频云技术团队7 小时前
让 Agent 成为音视频工作台:AI MediaKit CLI + Skill 发布
人工智能·音视频开发
魏祖潇7 小时前
framework 整合实战——DDD/TDD/SDD 三件套在 framework 仓的真实落地
人工智能·后端
Token炼金师8 小时前
去噪扩散:从随机噪声到高保真图像的数学之路
人工智能·aigc
这个DBA有点耶8 小时前
AI写的SQL跑崩了生产库,这锅谁背?
数据库·人工智能·程序员