PIL常用方法

from PIL import Image # 导入PIL中Image,进行简单的图像处理操作

img = Image.open("./image/image01.png") # 导入图像数据
print(f"数据类型:{ type(img)}")
print(f"图像大小:{img.size}")
数据类型:<class 'PIL.PngImagePlugin.PngImageFile'>
图像大小:(1920, 1080)
# 将 PIL 图像转换为 NumPy 数组
import numpy as np
image_np = np.array(img)
print(f"数据类型:{type(image_np)}")
print(f"数据大小:{image_np.size}")
print(f"数据形状:{image_np.shape}")
数据类型:<class 'numpy.ndarray'>
数据大小:6220800
数据形状:(1080, 1920, 3)
img.show() # 查看图像,会启动本地图片查看器
# 将图像转为灰度图  
img_gray = img.convert("L")
img_gray.show()
# 高斯模糊
from PIL import ImageFilter
img_gaussian_blur = img.filter(ImageFilter.GaussianBlur(radius=10))
img_gaussian_blur.show()
# 照片旋转
img_rotate = img.rotate(90)
img_rotate.show()
# 照片翻转
img_flip = img.transpose(Image.FLIP_LEFT_RIGHT)
img_flip.show()
# 照片放缩
size = (500, 500)
img_scale = img.copy() # 创建图像副本
img_scale.thumbnail(size)
img_scale.show()
# 图片裁剪
print(f"图像大小:{img.size}")
img_crop = img.crop((100, 100, 200, 200)) # 从原始图片left, upper, right, lower的位置开始裁剪
img_crop.show()
print(f"裁剪后图像大小:{img_crop.size}") # 大小为右减左,上减下
图像大小:(1920, 1080)
(100, 100)
# 打开两个图像文件
img01 = Image.open('./image/image01.png')
img02 = Image.open('./image/image02.jpg')
# 创建新的图片,大小为两张图片宽度之和 x 一张图片高度
new_image = Image.new('RGB', (img01.size[0] + img02.size[0], img01.size[1]))

# 将两张图片粘贴到新图片上
new_image.paste(img01, (0, 0))
new_image.paste(img02, (img01.size[0], 0))

# 保存拼接后的图片
new_image.save("./image/cat_result.jpg")

# 显示拼接后的图片
new_image.show()
posted @ 2024-03-29 16:41  Budcs  阅读(20)  评论(0)    收藏  举报