FastAPI は、API を構築するための人気のある Python フレームワークです。これは、HTTP リクエストとレスポンスを処理する便利な方法を提供します。この記事では、FastAPI で NumPy 配列を画像としてレンダリングする方法を説明します。
<code class="python">from PIL import Image from io import BytesIO @app.get("/image", response_class=Response) def get_image(): arr = np.zeros((512, 512, 3), dtype=np.uint8) arr[0:256, 0:256] = [255, 0, 0] # Red patch in the upper left im = Image.fromarray(arr) with io.BytesIO() as buf: im.save(buf, format='PNG') im_bytes = buf.getvalue() headers = {'Content-Disposition': 'inline; filename="test.png"'} return Response(im_bytes, headers=headers, media_type='image/png')</code>
<code class="python">import cv2 @app.get("/image", response_class=Response) def get_image(): arr = np.zeros((512, 512, 3), dtype=np.uint8) arr[0:256, 0:256] = [255, 0, 0] # Red patch in the upper left arr = cv2.cvtColor(arr, cv2.COLOR_RGB2BGR) # OpenCV uses BGR success, im = cv2.imencode('.png', arr) headers = {'Content-Disposition': 'inline; filename="test.png"'} return Response(im.tobytes(), headers=headers, media_type='image/png')</code>
注: このオプションは、画像を JavaScript オブジェクトとして変換して送信する場合にのみ使用します。
<code class="python">import json @app.get("/image") def get_image(): im = Image.open('test.png') arr = np.asarray(im) return json.dumps(arr.tolist())</code>
<code class="python">@app.get("/image") def get_image(): arr = cv2.imread('test.png') return json.dumps(arr.tolist())</code>
以上がFastAPI で NumPy 配列を画像として表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。