Python Imaging Library(PIL)是一个非常好用的图像处理库,功能非常强大。
Pillow支持读取、修改和保存多种图像格式,如JPEG、PNG、BMP、GIF等。您可以使用Pillow库来编写图像处理程序,如缩放图像、旋转图像、调整图像大小、对图像进行裁剪和粘贴等。
pip install pillow
from PIl import Image # 导入PIL库中的image模块
img=Image.open('test.jpg') # 打开照片
img.show() # 显示照片
print('照片的格式:',img.format) # 输出:jpg 照片的格式是jpg
print(img.size) # 输出照片的尺寸
print(img.height) # 输出照片的长
print(img.width) # 输出照片的宽
from PIL import Image
im = Image.open("test.jpg")
#显示图像
im.show()
#保存图像
im.save('test1.jpg')
from PIL import Image
#从一个图像中创建一个图像对象
im = Image.open('test.jpg')
#显示实际图像
im.show()
#left, upper, right, lowe
#裁剪
cropped = im.crop((1,2,300,300))
#显示裁剪后的部分
cropped.show()
#保存裁剪后的图片
cropped.save('test1.jpg')
mode:模式,通常用"RGB"这种模式
size:生成的图像大小
color:生成图像的颜色,默认为0,即黑色。
from PIL import Image
image = Image.new('RGB', (160, 90), (0, 0, 255))
image.show()
from PIL import Image
im = Image.open('test.jpg') # 创建图像实例
draw = ImageDraw.Draw(im) # 在上面画画
draw.rectangle([x1,y1,x2,y2],outline=(255,0,0),width=1) # [左上角x,左上角y,右下角x,右下角y]
im.show() # 显示图像
from PIL import Image
# 打开一个已经存在的图像
im = Image.open("test.jpg")
# 做一个左右翻转的动作
hori_flippedImage = im .transpose(Image.FLIP_LEFT_RIGHT)
# 显示水平翻转后的图像
hori_flippedImage.show()
from PIL import Image
# 打开一个已经存在的图像
im = Image.open("test.jpg")
# 显示垂直翻转的图像
Vert_flippedImage = im.transpose(Image.FLIP_TOP_BOTTOM)
Vert_flippedImage.show()
from PIL import Image
im = Image.open("test.jpg")
#使新图像的宽度和高度分别为原图像的一半
resized_im = im.resize((round(im.size[0]*0.5), round(im.size[1]*0.5))
#显示调整后的图像
resized_im.show()
#保存裁剪后的图片
resized_im.save('test1.jpg')
from PIL import Image
img=Image.open('test.jpg')
img2=img.copy().show() # 复制原照片并显示
from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw
img=Image.open("图1.jpg")
draw = ImageDraw.Draw(img)
ft = ImageFont.truetype("C:\\WINDOWS\\Fonts\\SIMYOU.TTF", 20)
# 参数:位置,文本,字体,颜色
draw.text((30,30), u"测试文字",font = ft, fill = 'red')
ft = ImageFont.truetype("C:\\WINDOWS\\Fonts\\SIMYOU.TTF", 40)
draw.text((30,80), u"测试文字",font = ft, fill = 'green')
img.show() #显示
img.save("图2.png") # 保存
from PIL import Image
from PIL import ImageDraw
img = Image.open("test.jpg")
logo = Image.open("logo.jpg")
img.paste(logo, (0, 0)) # 左上角
img1.show() #显示
img1.save("test1.jpg") # 保存
from PIL import Image
import numpy as np
#创建一个150×250像素的数组。
arr = np.zeros([150, 250, 3], dtype=np.uint8)
#用橙色填充数组的左半部分,蓝色填充数组的右半部分。
arr[:,:100] = [255, 128, 0]
arr[:,100:] = [0, 0, 255]
img = Image.fromarray(arr)
img.show()
img.save("test.jpg")
from PIL import Image
from numpy import array
#打开图像
img = Image.open('beach1.jpg')
#显示
img.show()
#将图像转换为numpy数组
img2arr = array(img)
#打印numpy数组
print(img2arr)
#将numpy数组转换回图像
arr2im = Image.fromarray(img2arr)
#显示图像
arr2im.show()
#保存
arr2im.save("test.jpg")