Python,如何异步保存PIL图片?

Python, how can I asynchronously save the PIL images?

对于异步文件保存,我可以使用 aiofiles 库。

要使用 aiofiles 库,我必须这样做:

async with aiofiles.open(path, "wb") as file:
   await file.write(data)

如何异步保存 PIL 图像?即使我使用 Image.tobytes 功能用 file.write(data) 保存它,保存的图像也不正确。

那么如何异步保存 PIL 图像?

感谢@MarkSetchell 发表的评论,我设法找到了解决方案。

async def save_image(path: str, image: memoryview) -> None:
    async with aiofiles.open(path, "wb") as file:
        await file.write(image)


image = Image.open(...)
buffer = BytesIO()
image.save(buffer, format="JPEG")

await save_image('./some/path', buffer.getbuffer())

我不知道能获得多少速度,但就我而言,我能够同时运行一些数据处理代码、数据下载代码和图像保存代码,这给了我一个加快速度。