gpt4 book ai didi

python - 如何解析和保存多部分/相关类型=图像/jpeg 响应? (迪科姆·瓦多回应)

转载 作者:太空宇宙 更新时间:2023-11-03 20:21:35 24 4
gpt4 key购买 nike

我正在向 Dicom 服务器发出 Get 请求,该服务器返回 Multipart/Related Type=image/jpeg。我尝试使用 aiohttp libararies Multipart 功能进行解析,但没有成功。保存的文件已损坏。

这是我的代码。

    import asyncio
import aiohttp
'''
async def fetch(url,session,header):
async with session.get(url,headers=header) as response:
await response

async def multiHit(urls,header):
tasks = []
async with aiohttp.ClientSession() as session:
for i,url in enumerate(urls):
tasks.append(fetch(url,session,header))
result = await asyncio.gather(*tasks)
return result

loop = asyncio.get_event_loop()
res = loop.run_until_complete(multiHit(["FRAME URL"],{"Accept":"multipart/related;type=image/jpeg"}))
print(res)
'''

async def xyz(loop):
async with aiohttp.ClientSession(loop=loop).get(url="FRAME URL",headers={"Accept":"multipart/related;type=image/jpeg"}) as response:
reader = aiohttp.MultipartReader.from_response(response)
while True:
part = await reader.next()
if part is None:
break
filedata = await part.read(decode=False)
import base64
with open('m.jpeg','wb') as outFile:
outFile.write(part.decode(filedata))
return 1

loop = asyncio.get_event_loop()
res = loop.run_until_complete(xyz(loop))

如何解析多部分/相关响应并保存图像?

最佳答案

我发现我正在正确解析多部分响应,但我必须使用另一个库(库名称:imagecodecs,方法名称:jpegsof3_decode)将各个部分解压缩到图像中。这是给出图像的 numpy 数组。这是更新后的代码

reader = aiohttp.MultipartReader.from_response(response)
while True:
part = await reader.next()
if part is None:
break
data = await part.read()
imageDecompressed = jpegsof3_decode(data)

此外,可以使用 cv2 libray 将 numpy 数组转换为图像

success, encoded_image = cv2.imencode('.png',imageDecompressed)

可以通过这种方式获得转换后图像的字节版本

imageInBytes = encoded_image.tobytes()

关于python - 如何解析和保存多部分/相关类型=图像/jpeg 响应? (迪科姆·瓦多回应),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58125826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com