Alors que l'article "Comment renvoyer un tableau numpy sous forme d'image à l'aide de FastAPI ?" fournit des informations utiles, il n’aborde pas directement la question de l’affichage de l’image. Pour remédier à cela, approfondissons les techniques sous-jacentes :
Cette méthode consiste à convertir les données de l'image en octets à l'aide de bibliothèques comme PIL ou OpenCV. Les octets résultants peuvent ensuite être servis comme réponse personnalisée avec le type de contenu et les en-têtes appropriés.
Utilisation de PIL :
<code class="python">from PIL import Image import io @app.get('/image', response_class=Response) def get_image(): im = Image.open('test.png') 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>
Utilisation d'OpenCV :
<code class="python">import cv2 @app.get('/image', response_class=Response) def get_image(): arr = cv2.imread('test.png', cv2.IMREAD_UNCHANGED) success, im = cv2.imencode('.png', arr) headers = {'Content-Disposition': 'inline; filename="test.png"'} return Response(im.tobytes(), headers=headers, media_type='image/png')</code>
Bien que cette approche ne soit pas recommandée pour l'affichage d'images, elle peut être utilisée pour convertir l'image en un fichier codé JSON. tableau numpy, qui peut ensuite être reconverti en image côté client.
Utilisation de PIL :
<code class="python">from PIL import Image import numpy as np @app.get('/image') def get_image(): im = Image.open('test.png') arr = np.asarray(im) return json.dumps(arr.tolist())</code>
Utilisation d'OpenCV :
<code class="python">import cv2 @app.get('/image') def get_image(): arr = cv2.imread('test.png', cv2.IMREAD_UNCHANGED) return json.dumps(arr.tolist())</code>
Pour afficher l'image à l'aide de cette méthode, vous devrez reconvertir les octets reçus ou les données codées en JSON en un format d'image côté client.
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!