
Render NumPy Array sebagai Imej dalam FastAPI
Pengenalan
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.
Pilihan 1: Kembalikan Imej sebagai Bait
Menggunakan PIL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <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>
|
Salin selepas log masuk
Menggunakan OpenCV
1 2 3 4 5 6 7 8 9 10 11 | <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>
|
Salin selepas log masuk
Pilihan 2: Kembalikan Imej sebagai Array NumPy Dikodkan JSON
Nota: Gunakan pilihan ini hanya untuk menukar dan menghantar imej sebagai objek JavaScript.
Menggunakan PIL
1 2 3 4 5 6 7 | <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>
|
Salin selepas log masuk
Menggunakan OpenCV
1 2 3 4 | <code class = "python" >@app.get( "/image" )
def get_image():
arr = cv2.imread( 'test.png' )
return json.dumps(arr.tolist())</code>
|
Salin selepas log masuk
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!