ホームページ  >  記事  >  バックエンド開発  >  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: 画像をバイトとして返す

カスタム Response クラスを使用して、次の手順に従います:

  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 配列に戻します。

注:

  • どちらのオプションでも、Content-Disposition ヘッダーの設定が重要です。
  • NumPy 配列がメモリにロードされ、単一の応答で効率的に返せる場合、StreamingResponse は必要ありません。

以上がFastAPI で NumPy 配列を画像としてレンダリングする方法: 白い四角の問題のトラブルシューティング?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。