Python编程:pillow对图像的简单处理
【摘要】 图片属性
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 pr...
图片属性
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
创建缩略图
def create_thumbnail(): im = Image.open("image.jpg") im.thumbnail((120, 80)) im.save("image_thumbnail.jpg", "PNG")
- 1
- 2
- 3
- 4
- 5
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")
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
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")
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
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")
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
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")
- 1
- 2
- 3
- 4
- 5
image_resize.jpg
旋转图片
def rotate(): im = Image.open("image_region.jpg") out = im.rotate(45) out.save("image_rotate.jpg")
- 1
- 2
- 3
- 4
- 5
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")
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
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")
- 1
- 2
- 3
image_l.jpg
图像增强
from PIL import ImageFilter
def filter(): im = Image.open('image_region.jpg') im.filter(ImageFilter.DETAIL) im.save("image_detail.jpg")
- 1
- 2
- 3
- 4
- 5
- 6
- 7
image_detail.jpg
像素点处理
im = Image.open('image_region.jpg')
out = im.point(lambda i: i * 1.2)
out.save("image_point.jpg")
- 1
- 2
- 3
- 4
image_region.jpg
参考
文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。
原文链接:pengshiyu.blog.csdn.net/article/details/81938494
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)