2017-07-03 11 views
0

私はイメージをダウンロードし、オーバーレイして結果を表示するコードをいくつか持っています。しかし、特定のサイトからダウンロードしようとすると403(おそらくユーザーエージェントから)が届いています。同じことをするこれに類似したコードを作成するにはどうすればよいですか?403なしで同様の動作を作成しますか? (Python Wget)

from PIL import Image 
import os, sys 
import wget 
import requests 


url = "https://cdn.discordapp.com/avatars/247096918923149313/34a66572b9339acdaa1dedbcb63bc90a.png?size=256" 
filename = wget.download(url) 

pp = Image.open(filename) 
pp.save("image2c.png") 
pp = Image.open("image2c.png").convert("LA") 
pp.save("image2c.png") 

background = Image.open("image1.png").convert("RGBA") 
foreground = Image.open("image2c.png").convert("RGBA") 
foreground = foreground.resize((256, 256), Image.BILINEAR) 

background.paste(foreground, (125, 325), foreground) 
background.show() 
os.remove(filename) 

答えて

0

wgetのpythonライブラリには、httpsやパラメータのいくつかの問題があるようです...リクエストを使用することができます。

from PIL import Image 
import os, sys 
import requests 
from StringIO import StringIO 

url = "https://cdn.discordapp.com/avatars/247096918923149313/34a66572b9339acdaa1dedbcb63bc90a.png?size=256" 
response = requests.get(url) 
pp = Image.open(StringIO(response.content)) 
pp.save("image1.png") 

pp = Image.open("image2c.png").convert("LA") 
pp.save("image2c.png") 

background = Image.open("image1.png").convert("RGBA") 
foreground = Image.open("image2c.png").convert("RGBA") 
foreground = foreground.resize((256, 256), Image.BILINEAR) 
background.paste(foreground, (125, 325), foreground) 
background.show() 

SEE:のpython3のためにHow do I read image data from a URL in Python?

from PIL import Image 
import os, sys 
import requests 
from io import BytesIO 

url = "https://cdn.discordapp.com/avatars/247096918923149313/34a66572b9339acdaa1dedbcb63bc90a.png?size=256" 
response = requests.get(url) 
pp = Image.open(BytesIO(response.content)) 
pp.save("image1.png") 

参照:https://stackoverflow.com/a/31067445/8221879

+0

私は はTypeError(のpython 3を使用して)ここにエラーが表示されます。initial_valueがSTRまたはNoneでなければなりません、バイトではありません –

+0

Hmmm、python2.7でテスト済みです。このsugestionを試してください:https://stackoverflow.com/a/31067445/8221879? PILのインポートイメージ 輸入OS、SYS URL = "https://cdn.discordapp.com/avatars/247096918923149313/34a66572b9339acdaa1dedbcb63bc90a.png?size=256" 応答=リクエストBytesIO IOインポートから インポート要求 から .get(url) pp = Image.open(BytesIO(response.content)) pp.save( "image1.png") –

関連する問題