记一次放内存切图|BytesIO|PIL库

Posted 向阳-Y.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次放内存切图|BytesIO|PIL库相关的知识,希望对你有一定的参考价值。

from io import BytesIO
from PIL import Image

screenshot=open('./test.png','rb').read()
#放入内存
img_io = BytesIO()
img_io.write(screenshot)

img = Image.open(img_io)
#切出题目
question = img.crop((200,300,900,520))
#新建一个画布
new_img = Image.new('RGB',(700,220))
#贴入新画布
new_img.paste(question,(0,0,700,220))
#内存对象
new_img_fb = BytesIO()
new_img.save(new_img_fb,'png')
with open('./test2.png','wb') as f:
    f.write(new_img_fb.getvalue())
f.close()

img.crop切图

img.crop(x0,y0,x1,y1)


可能遇见的问题:

paste的坐标写的比画布大了,出现报错,拿个坐标尺好好算一下。

补充,贴两张图(注意计算画布和贴图大小):

#切出题目
question = img.crop((200,300,900,520))
#切出答案
answer = img.crop((200,530,900,700))
#新建一个画布
new_img = Image.new('RGB',(700,390))
#贴入新画布
new_img.paste(question,(0,0,700,220))
new_img.paste(answer,(0,220,700,390))

以上是关于记一次放内存切图|BytesIO|PIL库的主要内容,如果未能解决你的问题,请参考以下文章

PIL.UnidentifiedImageError:无法识别图像文件 <_io.BytesIO 对象

引发 UnidentifiedImageError(PIL.UnidentifiedImageError: 无法识别图像文件 <_io.BytesIO 对象位于 0x0000018CA596D3

Pillow处理图像模块

PIL(Pillow)的学习笔记

博客系统流程

游戏开发小技TexturePacker生成的图集逆向切分成精灵小图(json | python | PIL | TextureUnPacker | 逆向 | 切图)