[PYTHON] 어떻게 파이썬에서 원격 이미지를 복사합니까?
PYTHON어떻게 파이썬에서 원격 이미지를 복사합니까?
내 서버에 원격 이미지 (예 : http://example.com/image.jpg)를 복사해야합니다. 이것이 가능한가?
이것이 실제로 이미지인지 어떻게 확인합니까?
해결법
-
==============================
1.다운로드:
다운로드:
import urllib2 img = urllib2.urlopen("http://example.com/image.jpg").read()
PIL을 사용할 수 있는지 확인하려면
import StringIO from PIL import Image try: im = Image.open(StringIO.StringIO(img)) im.verify() except Exception, e: # The image is not valid
이미지 데이터가 유효하지 않은 경우에도 이미지인지 확인하려는 경우 : imghdr을 사용할 수 있습니다.
import imghdr imghdr.what('ignore', img)
메서드는 헤더를 확인하고 이미지 유형을 결정합니다. 이미지를 식별 할 수없는 경우 없음을 반환합니다.
-
==============================
2.물건 다운로드 중
물건 다운로드 중
import urllib url = "http://example.com/image.jpg" fname = "image.jpg" urllib.urlretrieve( url, fname )
이미지인지 확인하는 방법은 여러 가지가 있습니다. 가장 어려운 검사는 파일을 Python Image Library로 열고 오류가 있는지 확인하는 것입니다.
다운로드하기 전에 파일 유형을 확인하려면 원격 서버에서 제공하는 MIME 유형을 확인하십시오.
import urllib url = "http://example.com/image.jpg" fname = "image.jpg" opener = urllib.urlopen( url ) if opener.headers.maintype == 'image': # you get the idea open( fname, 'wb').write( opener.read() )
-
==============================
3.httplib2를 사용하는 것과 동일한 작업 ...
httplib2를 사용하는 것과 동일한 작업 ...
from PIL import Image from StringIO import StringIO from httplib2 import Http # retrieve image http = Http() request, content = http.request('http://www.server.com/path/to/image.jpg') im = Image.open(StringIO(content)) # is it valid? try: im.verify() except Exception: pass # not valid
-
==============================
4.원격 이미지 복사와 관련하여 질문의 일부분에 대해서는 다음 답변을 참고하십시오.
원격 이미지 복사와 관련하여 질문의 일부분에 대해서는 다음 답변을 참고하십시오.
import urllib2 import shutil url = 'http://dummyimage.com/100' # returns a dynamically generated PNG local_file_name = 'dummy100x100.png' remote_file = urllib2.urlopen(url) with open(local_file_name, 'wb') as local_file: shutil.copyfileobj(remote_file, local_file)
이 방법은 모든 바이너리 미디어 유형의 원격 파일을 복사하는 데 유용합니다.
from https://stackoverflow.com/questions/1394721/how-do-i-copy-a-remote-image-in-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 이미 페어링 된 것을 포함하여 리눅스에서 가까운 / 발견 가능한 블루투스 장치를 나열합니다. (0) | 2018.10.28 |
---|---|
[PYTHON] anacaonda conda 명령을 사용하여 PyPi 패키지를 설치하는 방법 (0) | 2018.10.28 |
[PYTHON] Python / Matplotlib을 사용하여 색상 표를 기반으로 한 (극지색) 색상환 플롯 (0) | 2018.10.28 |
[PYTHON] TensorBoard의 Tensorflow 혼란 매트릭스 (0) | 2018.10.28 |
[PYTHON] SQLAlchemy는 DESDENDING을 명령합니까? (0) | 2018.10.28 |