FastAPI ialah rangka kerja Python yang popular untuk membina API. Ia menyediakan cara yang mudah untuk mengendalikan permintaan dan respons HTTP. Artikel ini menunjukkan cara untuk memaparkan tatasusunan NumPy sebagai imej dalam 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>
Nota: Gunakan pilihan ini hanya untuk menukar dan menghantar imej sebagai objek 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>
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Array NumPy sebagai Imej dalam FastAPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!