Мне нужно отправить PNG-изображения на сервер черного ящика с запросом http.Я использую python3 для генерации изображений в массивном массиве 64x64x3.Что я сейчас делаю:
- Создание изображения
- Сохранение изображения с scipy.misc.toimage на диск
- Открытие сохраненного файла изображения с диска
- Используйте модуль запросов для отправки http-запросов с объектом изображения открытого файла изображения в нем
Это прекрасно работает, но я хочу избавиться от шагов 2 и 3, поэтому мне не нужно сохранятьМой объект на диск сначала, а затем загрузить его снова.Вместо этого я хотел бы преобразовать мой массив numpy в файл-объект, совместимый с http-сервером, и отправить его напрямую.(Как тот, который вы получаете из open ())
Я знаю, что легко конвертировать из массива в PNG-изображение, например, с помощью PIL, но я только нахожу, как это сделать в сочетании с сохранением на диск в одномфункция.
Большое спасибо за любую помощь!
Это мой код:
import numpy as np
import requests
from scipy.misc import toimage
arr = generate64x64x3ImageWithNumpy()
toimage(arr, cmin=0.0, cmax=255.0).save('tmp.png')
d = {'key':API_KEY}
f= {'image': open('tmp.png', 'rb')}
result = requests.post(SERVER_URL, files=f, data=d)
Я хочу это:
arr = generate64x64x3ImageWithNumpy()
not_on_disk = numpyArrayToPNGImageWithoutSavingOnDisk(arr)
d = {'key':API_KEY}
f = {'image': not_on_disk}
result = requests.post(SERVER_URL, files=f, data=d)