لعرض مصفوفة NumPy كصورة في FastAPI، لديك اثنين رئيسيين الخيارات:
الخيار 1: إرجاع الصورة كوحدات بايت
يتضمن هذا الأسلوب تحويل مصفوفة NumPy إلى بايتات باستخدام إما مكتبة PIL أو OpenCV ثم إرجاع البايتات كـ استجابة مخصصة بالعناوين المناسبة.
استخدام PIL:
# 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')
استخدام OpenCV:# تحويل مصفوفة NumPy إلى بايت باستخدام OpenCV استيراد السيرة الذاتية2 arr = np.zeros((512, 512, 3), dtype=np.uint8) # نموذج صورة RGB آر = cv2.cvtColor(arr, cv2.COLOR_RGB2BGR) النجاح، im = cv2.imencode('.png', arr) # إرجاع البايتات كرد مع الرؤوس المناسبة من استجابة استيراد fastapi الرؤوس = {'ترتيب المحتوى': 'مضمّن؛ اسم الملف = "test.png"'} return Response(im.tobytes(), headers=headers, media_type='image/png')
# 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')
الخيار 2: إرجاع الصورة كمصفوفة NumPy بترميز JSONلا ينصح بهذا الأسلوب لأغراض العرض ولكن يمكن استخدامه لنقل البيانات.
استخدام PIL:استيراد numpy كـ np استيراد json # تحويل مصفوفة NumPy إلى سلسلة مشفرة بـ JSON arr = np.zeros((512, 512, 3), dtype=np.uint8) # نموذج صورة RGB json_data = json.dumps(arr.tolist())
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())
استيراد numpy كـ np استيراد السيرة الذاتية2 استيراد json # تحويل مصفوفة NumPy إلى سلسلة مشفرة بـ JSON arr = np.zeros((512, 512, 3), dtype=np.uint8) # نموذج صورة RGB json_data = json.dumps(arr.tolist()).replace('-1', '255')
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3