我尝试使用winrt包中的BitmapDecoder
,其中包含我从python文件中读取的字节。
如果我使用winrt从文件中读取字节,我可以做到这一点:
import os
from winrt.windows.storage import StorageFile, FileAccessMode
from winrt.windows.graphics.imaging import BitmapDecoder
async def process_image(path):
# get image from disk
file = await StorageFile.get_file_from_path_async(os.fspath(path))
stream = await file.open_async(FileAccessMode.READ)
decoder = await BitmapDecoder.create_async(stream)
return await decoder.get_software_bitmap_async()
问题是,我真的想在将字节发送到BitmapDecoder
之前使用python-land中的字节,而不是使用StorageFile
获取它们。
浏览MS文档,我看到有一个InMemoryRandomAccessStream
,听起来像我想要的,但我似乎不能让它工作。我尝试了这个:
from winrt.windows.storage.streams import InMemoryRandomAccessStream, DataWriter
stream = InMemoryRandomAccessStream()
writer = DataWriter(stream)
await writer.write_bytes(bytes_)
这样就得到了await writer.write_bytes(bytes_)
行的RuntimeError: The parameter is incorrect.
。
不确定下一步该怎么做。
1条答案
按热度按时间mi7gmzs61#
要使用python字节,请执行以下操作。关键字是
writer.write_bytes
不是异步的,并且调用writer.store_async()
。