찾다

 >  Q&A  >  본문

Python으로 업로드한 후 이미지 크기를 압축하는 방법

저는 flask框架,图片处理用的是pillow를 사용합니다.

일반적으로 업로드는 루프files,然后逐个file.save()
我希望在save完成后,执行pillow압축 논리로 수행됩니다.

그런데save是一个I/O操作,存在延迟性,如果直接在file.save()下面直接调用pillowImage.open는 이미지 데이터가 이미지에 기록되지 않아서 오류가 발생하는 것 같습니다.

무엇을 해야 할까요?

PHPzPHPz2757일 전761

모든 응답(3)나는 대답할 것이다

  • 習慣沉默

    習慣沉默2017-05-18 10:54:27

    으아악

    저장 작업이 비동기적이지 않은 것을 알 수 있습니다


    업데이트

    copyfileobj는 차단 작업입니다

    https://github.com/pallets/we...

    회신하다
    0
  • 阿神

    阿神2017-05-18 10:54:27

    실제로 이러한 유형의 이미지 처리에는 Alibaba Cloud의 OSS 또는 Qiniu 및 기타 유사한 저장 기능을 직접 사용하는 것이 더 좋습니다. 이미지를 OOS에 직접 업로드한 다음 향후에는 지정된 이미지 처리를 위해 특수 접미사를 호출합니다. 또한 주소 처리를 위해 OSS에 액세스하게 됩니다. 이는 이미지를 처리하기 위해 자체 서버를 사용하는 부담을 피할 수 있을 뿐만 아니라 액세스 압력을 줄여 프로그램의 복잡성을 줄이는 데에도 매우 유익합니다.

    회신하다
    0
  • 某草草

    某草草2017-05-18 10:54:27

    저자는 Image.open의 fp 매개변수를 살펴보았습니다. 파일 이름(문자열), pathlib.Path 객체 또는 파일 객체 PIL.Image.open(fp, mode='r')을 사용할 수도 있습니다.

    파일을 Image.open(파일)에 직접 전달하면 됩니다!

    으아악

    회신하다
    0
  • 취소회신하다