Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengembalikan Tatasusunan NumPy sebagai Imej Menggunakan FastAPI?

Bagaimana untuk Mengembalikan Tatasusunan NumPy sebagai Imej Menggunakan FastAPI?

DDD
Lepaskan: 2024-10-24 05:47:02
asal
743 orang telah melayarinya

How to Return NumPy Arrays as Images Using FastAPI?

Cara Menghasilkan Tatasusunan NumPy sebagai Imej dalam FastAPI

Isu: Memaparkan tatasusunan NumPy sebagai imej dalam FastAPI

Penyelesaian:

Untuk memaparkan tatasusunan NumPy sebagai imej dalam FastAPI, anda mempunyai dua pilihan utama:

Pilihan 1: Kembalikan Imej sebagai Bait

Pendekatan ini melibatkan penukaran tatasusunan NumPy menjadi bait menggunakan sama ada pustaka PIL atau OpenCV dan kemudian mengembalikan bait sebagai Respons tersuai dengan pengepala yang sesuai.

Menggunakan 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>
Salin selepas log masuk

Menggunakan 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>
Salin selepas log masuk

Pilihan 2: Kembalikan Imej sebagai Array NumPy yang dikodkan JSON

Pendekatan ini tidak disyorkan untuk tujuan paparan tetapi boleh digunakan untuk pemindahan data.

Menggunakan 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>
Salin selepas log masuk

Menggunakan 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>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Tatasusunan NumPy sebagai Imej Menggunakan FastAPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan