FastAPI에서 NumPy 배열을 이미지로 표시하는 방법
문제:
이미지를 나타내는 NumPy 배열은 렌더링을 시도할 때 흰색 사각형으로 나타납니다.
해결책:
옵션 1: 이미지를 바이트로 반환
사용자 정의 응답 클래스를 사용하여 다음 단계를 따르세요.
- 디스크에서 이미지를 로드하거나 PIL 또는 OpenCV를 사용하여 메모리 내 NumPy 배열을 이미지로 변환합니다.
- save() 또는 imencode() 메서드를 각각 사용하여 이미지를 BytesIO 버퍼에 저장합니다.
- 인라인 보기 또는 다운로드를 지정하도록 Content-Disposition 헤더를 설정합니다.
- 반환 media_type이 적절한 이미지 형식(예: 'image/png')으로 설정된 응답의 이미지 바이트.
옵션 2: 이미지를 JSON으로 인코딩된 NumPy 배열로 반환
이 옵션은 브라우저에 이미지를 표시하는 데 적합하지 않지만 NumPy 배열을 JSON으로 인코딩하고 클라이언트 측에서 다시 이미지로 디코딩할 수 있습니다.
- tolist() 메서드를 사용하여 NumPy 배열을 목록으로 변환합니다.
- 목록을 JSON으로 인코딩하고 이를 응답으로 반환합니다.
- 클라이언트 측에서는 JSON 문자열을 다시 NumPy 배열로 디코딩합니다. PIL 또는 OpenCV를 사용하여 이미지를 생성합니다.
참고:
- 두 옵션 모두 Content-Disposition 헤더를 설정하는 것이 중요합니다. 브라우저에 이미지를 표시하기 위한 것입니다.
- NumPy 배열이 메모리에 로드되고 단일 응답으로 효율적으로 반환될 수 있는 경우 StreamingResponse가 필요하지 않습니다.
위 내용은 FastAPI에서 NumPy 배열을 이미지로 렌더링하는 방법: 흰색 사각형 문제 해결?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!