>  기사  >  백엔드 개발  >  FastAPI에서 NumPy 배열을 이미지로 렌더링하는 방법: 흰색 사각형 문제 해결?

FastAPI에서 NumPy 배열을 이미지로 렌더링하는 방법: 흰색 사각형 문제 해결?

Linda Hamilton
Linda Hamilton원래의
2024-10-24 00:30:02430검색

How to Render NumPy Array as Image in FastAPI: Troubleshooting White Square Issue?

FastAPI에서 NumPy 배열을 이미지로 표시하는 방법

문제:

이미지를 나타내는 NumPy 배열은 렌더링을 시도할 때 흰색 사각형으로 나타납니다.

해결책:

옵션 1: 이미지를 바이트로 반환

사용자 정의 응답 클래스를 사용하여 다음 단계를 따르세요.

  1. 디스크에서 이미지를 로드하거나 PIL 또는 OpenCV를 사용하여 메모리 내 NumPy 배열을 이미지로 변환합니다.
  2. save() 또는 imencode() 메서드를 각각 사용하여 이미지를 BytesIO 버퍼에 저장합니다.
  3. 인라인 보기 또는 다운로드를 지정하도록 Content-Disposition 헤더를 설정합니다.
  4. 반환 media_type이 적절한 이미지 형식(예: 'image/png')으로 설정된 응답의 이미지 바이트.

옵션 2: 이미지를 JSON으로 인코딩된 NumPy 배열로 반환

이 옵션은 브라우저에 이미지를 표시하는 데 적합하지 않지만 NumPy 배열을 JSON으로 인코딩하고 클라이언트 측에서 다시 이미지로 디코딩할 수 있습니다.

  1. tolist() 메서드를 사용하여 NumPy 배열을 목록으로 변환합니다.
  2. 목록을 JSON으로 인코딩하고 이를 응답으로 반환합니다.
  3. 클라이언트 측에서는 JSON 문자열을 다시 NumPy 배열로 디코딩합니다. PIL 또는 OpenCV를 사용하여 이미지를 생성합니다.

참고:

  • 두 옵션 모두 Content-Disposition 헤더를 설정하는 것이 중요합니다. 브라우저에 이미지를 표시하기 위한 것입니다.
  • NumPy 배열이 메모리에 로드되고 단일 응답으로 효율적으로 반환될 수 있는 경우 StreamingResponse가 필요하지 않습니다.

위 내용은 FastAPI에서 NumPy 배열을 이미지로 렌더링하는 방법: 흰색 사각형 문제 해결?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.