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())
我不知道能获得多少速度,但就我而言,我能够同时运行一些数据处理代码、数据下载代码和图像保存代码,这给了我一个加快速度。
对于异步文件保存,我可以使用 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())
我不知道能获得多少速度,但就我而言,我能够同时运行一些数据处理代码、数据下载代码和图像保存代码,这给了我一个加快速度。