Я пишу скрипт, который будет получать изображение по ссылке. Затем изображение будет изменено с помощью модуля PIL
и загружено в Imgur с помощью модуля pyimgur
. Я не хочу сохранять изображение на диске, вместо этого манипулирую изображением в памяти, а затем загружаю его из памяти в Imgur. Сценарий:
from pyimgur import Imgur
import cStringIO
import requests
from PIL import Image
LINK = "http://pngimg.com/upload/cat_PNG106.png"
CLIENT_ID = '29619ae5d125ae6'
im = Imgur(CLIENT_ID)
def _upload_image(img, title):
uploaded_image = im.upload_image(img, title=title)
return uploaded_image.link
def _resize_image(width, height, link):
#Retrieve our source image from a URL
fp = requests.get(link)
#Load the URL data into an image
img = cStringIO.StringIO(fp.content)
im = Image.open(img)
#Resize the image
im2 = im.resize((width, height), Image.NEAREST)
#saving the image into a cStringIO object to avoid writing to disk
out_im2 = cStringIO.StringIO()
im2.save(out_im2, 'png')
return out_im2.getvalue()
Когда я запускаю этот сценарий, я получаю эту ошибку: TypeError: file() argument 1 must be encoded string without NULL bytes, not str
У кого-нибудь есть решение?