FastAPI est un framework Python populaire pour la création d'API. Il fournit un moyen pratique de gérer les requêtes et les réponses HTTP. Cet article montre comment restituer des tableaux NumPy sous forme d'images dans FastAPI.
<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>
Remarque : Utilisez cette option uniquement pour convertir et envoyer l'image en tant qu'objet 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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!