我需要通過 HTTP 發送編碼和解碼的影像以及一些元資料。我想將影像作為二進制資料發送,而不是將它們編碼為 base64,因為編碼和解碼會增加不必要的延遲。
例如,編碼后的影像可能如下所示:
img = open(img_file, 'rb').read()
解碼后的影像可能如下所示:
img = cv2.imread(img_file)
假設我還需要在 POST 請求中發送一些附加資訊,例如影像名稱。
發送這些最有效的方法是什么?代碼在 Python 中會是什么樣子?我需要使用什么內容型別或其他標題?
我在網上找到了一些這樣的例子,但它們只發送一個影像,因此將內容型別設定為image/jpeg,但我想知道當你有額外的欄位要發送時會發生什么。
uj5u.com熱心網友回復:
如果您想發送其他欄位,您有幾個選擇:
- Base64 對影像資料進行編碼并將其與所有額外資料一起嵌入到 json 字串中
- 在您的欄位中添加自定義 HTTP 標頭
- 將您的欄位添加到影像元資料本身
我知道你說你不想做 1,但如果你從未嘗試過,你怎么知道它會增加不必要的延遲?我希望它遠遠小于 HTTP 請求的延遲。選項 2 是有風險的,因為標頭可能會被網路基礎設施剝離或更改,并且您的用戶可能不希望在標頭中找到資料。選項 3 取決于資料是什么以及將其放在影像內部是否有意義(以及您的用戶是否知道在那里尋找它)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/448625.html
