记一次放内存切图|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
游戏开发小技TexturePacker生成的图集逆向切分成精灵小图(json | python | PIL | TextureUnPacker | 逆向 | 切图)