您的位置:首页 > 编程语言 > Python开发

Python-使用PIL和Image处理完图片存储时出现的问题

2020-03-08 16:08 627 查看

使用如下代码

from PIL import Image
import numpy as np
im0 = np.array(Image.open("E:/1/1.jpg").convert("L"))#灰度方式打开图片,并且转换为数组
im1 = 255 - im0#反变换
pil_im = Image.fromarray(np.uint(im1))

pil_im.save("E:/1/im1.jpg")#存储

会出现问题
OSError: cannot write mode I as JPEG

from PIL import Image
import numpy as np
im0 = np.array(Image.open("E:/1/1.jpg").convert("L"))
im1 = 255-im0
pil_im = Image.fromarray(np.uint(im1))

pil_im = pil_im.convert("L")#添加此行代码即可解决

pil_im.save("E:/1/im1.jpg")

《Python语言程序设计基础(第二版)》嵩天

后续:循环保存

from PIL import Image
import numpy as np
im0 = np.array(Image.open("E:/1/1.jpg").convert("L"))
im1 = 255 - im0
im2 = (100/255)*im0+150
im3 = 255*(im1/255)**2
for s in range(1,4):

file = Image.fromarray(np.uint(eval("im{}".format(s))))#np.uint()操作对象是一个变量而不是字符串,所以要用eval()变为可执行语句
file = file.convert("L")
file.save("E:/1/im{}.jpg".format(s))

初学python时常犯的小错误合集 -数据类型错误是最常见的

  • 点赞
  • 收藏
  • 分享
  • 文章举报
weixin_43461797 发布了2 篇原创文章 · 获赞 0 · 访问量 24 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: