Python编程:pillow对图像的简单处理
2023-09-14 09:07:14 时间
图片属性
from PIL import Image
def show_info():
im = Image.open("image.jpg")
print(im.mode) # RGB
print(im.format) # JPEG
print(im.size) # (1200, 800)
print(im.filename) # image.jpg
print(im.width) # 1200
print(im.height) # 800
image.jpg
转换图片格式
jpg -> png
def convert_format():
Image.open("image.jpg").save("image.png")
im = Image.open("image.png")
print(im.mode) # RGB
print(im.format) # PNG
创建缩略图
def create_thumbnail():
im = Image.open("image.jpg")
im.thumbnail((120, 80))
im.save("image_thumbnail.jpg", "PNG")
image_thumbnail.jpg
裁剪图片
def crop_iamge():
im = Image.open("image.jpg")
box = (206, 180, 994, 648) # 左上角和右下角坐标,类似qq截图
region = im.crop(box)
region.save("image_region.jpg")
# 处理子图,旋转180度,粘贴回原图
region = region.transpose(Image.ROTATE_180)
im.paste(region, box)
im.save("image_paste.jpg")
image_region.jpg
image_paste.jpg
左右翻转图片
def roll_image():
im = Image.open("image_region.jpg")
image = im.copy()
delta = 2
width_half = image.width // delta
box_left = (0, 0, width_half, image.height)
box_right = (width_half, 0, image.width, image.height)
part_left = image.crop(box_left)
part_right = image.crop(box_right)
image.paste(part_left, box_right)
image.paste(part_right, box_left)
image.save("image_roll.jpg")
image_roll.jpg
图片的分离和合并
def split_merge():
im = Image.open("image_region.jpg")
r, g, b = im.split()
print(r, g, b)
r.save("r.jpg")
g.save("g.jpg")
b.save("b.jpg")
image = Image.merge("RGB", (r, g, b))
image.save("image_merge.jpg")
r.jpg
g.jpg
b.jpg
image_merge.jpg
改变大小
def resize():
im = Image.open("image_region.jpg")
out = im.resize((128, 128))
out.save("image_resize.jpg")
image_resize.jpg
旋转图片
def rotate():
im = Image.open("image_region.jpg")
out = im.rotate(45)
out.save("image_rotate.jpg")
image_rotate.jpg
转置图片
逆时针
def transpose():
im = Image.open("image_region.jpg")
# 左右镜像
out = im.transpose(Image.FLIP_LEFT_RIGHT)
out.save("image_flip_left_right.jpg")
# 上下镜像
out = im.transpose(Image.FLIP_TOP_BOTTOM)
out.save("image_flip_top_bottom.jpg")
# 旋转90度
out = im.transpose(Image.ROTATE_90)
out.save("image_rotate_90.jpg")
# 旋转180度
out = im.transpose(Image.ROTATE_180)
out.save("image_rotate_180.jpg")
# 旋转270度
out = im.transpose(Image.ROTATE_270)
out.save("image_rotate_270.jpg")
image_flip_left_right.jpg
image_rotate_90.jpg
转为黑白图片
def convert_l():
im = Image.open('image_region.jpg').convert('L')
im.save("image_l.jpg")
image_l.jpg
图像增强
from PIL import ImageFilter
def filter():
im = Image.open('image_region.jpg')
im.filter(ImageFilter.DETAIL)
im.save("image_detail.jpg")
image_detail.jpg
像素点处理
im = Image.open('image_region.jpg')
out = im.point(lambda i: i * 1.2)
out.save("image_point.jpg")
image_region.jpg
参考
相关文章
- 重学python
- Python网络编程之TCP套接字简单用法示例
- Python-GUI编程PyQT5案例:注册界面扇形菜单动画及相关事件处理
- 如何调试Python程序(pdb使用手册)
- Python编程学习:random.shuffle的简介、使用方法之详细攻略
- Python编程学习:让函数更加灵活的*args和**kwargs(设计不同数量参数的函数)的简介、使用方法、经典案例之详细攻略
- 要学量化交易,先学编程,python基本语法与变量
- python内置函数的模仿
- Python MySQL删除
- 有了这个可视化插件, Python 编程更轻松
- python selenium登陆网易云音乐
- Python编程:pycharm控制台字体颜色
- Python编程:使用数据库sqlite3
- Python编程:logging模块的简单使用
- Python编程:supervisor模块管理进程实例
- Python编程:flask-cors模块解决Flask跨域请求Cross-Origin问题
- Python编程:利用ImageMagick转换PDF为图片并识别提取图表
- Python编程:Celery执行异步任务和定时任务
- Python编程:PyThink数据库交互模块提高爬虫编写速度
- 小学生蓝桥杯Python闯关 | 99乘法表
- python 多进程