Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich NumPy-Arrays mithilfe von FastAPI als Bilder zurückgeben?
Um ein NumPy-Array als Bild in FastAPI anzuzeigen, haben Sie zwei Hauptoptionen:
Option 1: Bild als Bytes zurückgeben
Dieser Ansatz beinhaltet die Konvertierung Zerlegen Sie das NumPy-Array mithilfe der PIL- oder OpenCV-Bibliothek in Bytes und geben Sie die Bytes dann als benutzerdefinierte Antwort mit den entsprechenden Headern zurück.
Verwendung von PIL:
<code class="python"># Convert NumPy array to bytes using PIL from PIL import Image import io arr = np.zeros((512, 512, 3), dtype=np.uint8) # Sample RGB image buf = BytesIO() im = Image.fromarray(arr) im.save(buf, format='PNG') im_bytes = buf.getvalue() # Return bytes as a Response with appropriate headers from fastapi import Response headers = {'Content-Disposition': 'inline; filename="test.png"'} return Response(im_bytes, headers=headers, media_type='image/png')</code>
Verwendung von OpenCV:
<code class="python"># Convert NumPy array to bytes using OpenCV import cv2 arr = np.zeros((512, 512, 3), dtype=np.uint8) # Sample RGB image arr = cv2.cvtColor(arr, cv2.COLOR_RGB2BGR) success, im = cv2.imencode('.png', arr) # Return bytes as a Response with appropriate headers from fastapi import Response headers = {'Content-Disposition': 'inline; filename="test.png"'} return Response(im.tobytes(), headers=headers, media_type='image/png')</code>
Option 2: Bild als JSON-codiertes NumPy-Array zurückgeben
Dieser Ansatz wird für Anzeigezwecke jedoch nicht empfohlen kann zur Datenübertragung verwendet werden.
Verwendung von PIL:
<code class="python">import numpy as np import json # Convert NumPy array to JSON-encoded string arr = np.zeros((512, 512, 3), dtype=np.uint8) # Sample RGB image json_data = json.dumps(arr.tolist())</code>
Verwendung von OpenCV:
<code class="python">import numpy as np import cv2 import json # Convert NumPy array to JSON-encoded string arr = np.zeros((512, 512, 3), dtype=np.uint8) # Sample RGB image json_data = json.dumps(arr.tolist()).replace('-1', '255')</code>
Das obige ist der detaillierte Inhalt vonWie kann ich NumPy-Arrays mithilfe von FastAPI als Bilder zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!