Форум сайта python.su
Имеется два изображения, необходимо чтобы получилось одно в ввиде склееных двух. Изображения получаю в виде строки по http:
img1 = response1.read()
img2 = response2.read()
Пробовал использовать метод fromstring, но он выдает ошибку:
size = 75,51
im1 = Image.fromstring(“RGBA”,size,img1)
im2 = Image.fromstring(“RGBA”,size,img2)
И как их “склеить” я тоже не знаю. Хотел попробовать вот так:
outfile = Image.merge(“RGB”, (im1, img, im3))
Но думаю, что наверняка неправильно, да и не дошел я до этого шага, т.к не получился у меня метод fromstring.
Офлайн
Сервер твой?! Отдает изображение в каком формате?!
Если на сервере PIL отдает через tostring, только в этом случае можно использовать fromstring
Иначе, открывай как файл, при помощи модуля StringIO например.
Офлайн
Вот для примера, пусть изображение имеет урл http://www.codeproject.com/SiteRes/CP/Img/Std/logo225x90.gif ( Правда в моем случае jpeg).
opener = build_opener() # думаю не столь важно, что тут
url = "http://www.codeproject.com/SiteRes/CP/Img/Std/logo225x90.gif“
req = urllib2.Request(url, None, headers)
response = opener.open(req)
img1 = response.read() # вот в таком виде изображение
# Ну а дальше…
size = 75,51
im1 = Image.fromstring(”RGBA",size,img1)
И через StringIO пробовал, все равно ошибку получал, сейчас не могу к сожалению текст ошибки привести, что-то там про decoder было. Все вышеперечисленное правильно? Если да - буду искать косяк, плюс хотелось бы узнать как их склеить.
Офлайн
Попробуй так:
img1 = Image.open(response)
img1 = Image.open(StringIO(response.read()))
Отредактировано (Июнь 15, 2009 21:28:26)
Офлайн
Спасибо, со StringIO все получилось.
Отредактировано (Июнь 15, 2009 15:49:26)
Офлайн
Забыл сказать.
Смени название темы. Обсуждаемый здесь вопрос не касается объединения.
Например так: “Открытие изображения PIL по его URL”
..bw
Офлайн