내 토네이도 응용 프로그램은 머리글에 이미지를 수신합니다. 그래서 크기를 재조정하여 저장하고 싶습니다. 하지만 이미지를 여는 데 어려움이 있습니다. PIL 객체를 만들려면 이미지가있는 파일이 있어야하고 PIL의 이미지 모듈 open() 메서드에 파일 이름을 전달해야합니다. 하지만 헤더와 파일 정보 만 있습니다. Image 오브젝트를 생성하기 위해 임시 파일을 생성해야합니까? 아니면 다른 해결책일까요?토네이도 및 PIL : 머리글에서 이미지 열기
class ImageHandler(BaseHandler):
def post(self):
f = open("out.jpg", "w")
im = Image.open(self.request.files["ImageUpload"][0]["body"])
im.save(f, "JPEG")
self.finish()
TIA! 우리는 파일 이름이나 open()
에 파일 - 류의 객체를 제공 할 수
UPD1 (@bernie)
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/tornado-2.2-py2.7.egg/tornado/web.py", line 988, in _execute
getattr(self, self.request.method.lower())(*args, **kwargs)
File "server.py", line 160, in post
im = Image.open(StringIO(self.request.files["ImageUpload"][0]["body"]))
TypeError: 'module' object is not callable
그것은 현재의 플랫폼을 기반으로 문제가되지 수 있지만, 당신은 항상 바이너리 데이터에 대한 바이너리 모드를 사용합니다. 이 경우'w'를'wb'로 변경하십시오. – bernie
이진 쓰기 모드를 사용하지 않으면 어떤 종류의 오류가 발생합니까? – dizpers
바이너리 플래그가 중요한 플랫폼에 있다면 이미지가 손상 될 수 있습니다. – bernie