تحويل الرسومات الطبية المتحركة إلى تنسيق تفهمه أنظمة الأشعة يمكن أن يكون عنق زجاجة للمطورين. Aspose.Slides Cloud SDK for Python توفر مكتبة قوية تبسط هذه المهمة. في هذا الدليل ستشاهد مثالًا كاملاً لتحويل GIF إلى DICOM باستخدام Python، وتتعلم كيفية إعداد المصادقة، ومعالجة الدفعات، واستكشاف مكالمات cURL المكافئة لتكامل REST.

كيف تحول صور GIF إلى ملفات DICOM باستخدام Python - خطوة بخطوة

  1. تكوين المصادقة وتهيئة SlidesApi: قم بتعيين بيانات اعتماد العميل الخاصة بك وإنشاء مثيل SlidesApi.
from asposeslidescloud import SlidesApi, Configuration

config = Configuration()
config.api_key['client_id'] = "YOUR_CLIENT_ID"
config.api_key['client_secret'] = "YOUR_CLIENT_SECRET"
slides_api = SlidesApi(configuration=config)

هذه الخطوة تُعد البيئة لمثال تحويل GIF إلى DICOM في بايثون.

  1. تعريف مجلدات الإدخال والإخراج: إنشاء مجلدات لملفات GIF المصدر وملفات DICOM المُولدة.
import os

INPUT_FOLDER = "gif_inputs"
OUTPUT_FOLDER = "dicom_outputs"
os.makedirs(OUTPUT_FOLDER, exist_ok=True)
  1. إنشاء دالة التحويل: استخدم convert_local لتحويل ملف GIF إلى DICOM، مع تمرير بيانات تعريفية اختيارية.
def convert_gif_to_dicom(gif_path: str, dicom_path: str):
    with open(gif_path, "rb") as gif_file:
        result_bytes = slides_api.convert_local(
            file=gif_file,
            format="dicom",
            patientName="John Doe",
            patientId="123456",
            studyDescription="Sample GIF to DICOM conversion"
        )
    with open(dicom_path, "wb") as out_file:
        out_file.write(result_bytes)
  1. تحويل جميع ملفات GIF دفعة واحدة: امسح مجلد الإدخال واستدعِ دالة التحويل لكل ملف.
import glob

def batch_convert_gif_folder(input_folder: str, output_folder: str):
    gif_files = glob.glob(os.path.join(input_folder, "*.gif"))
    for gif_file in gif_files:
        base_name = os.path.splitext(os.path.basename(gif_file))[0]
        dicom_file = os.path.join(output_folder, f"{base_name}.dcm")
        convert_gif_to_dicom(gif_file, dicom_file)
  1. تشغيل البرنامج النصي: تشغيل التحويل الجماعي عندما يتم تنفيذ الوحدة مباشرةً.
if __name__ == "__main__":
    batch_convert_gif_folder(INPUT_FOLDER, OUTPUT_FOLDER)

يكمل البرنامج النصي مثال تحويل GIF إلى DICOM في بايثون ويترك لك ملفات DICOM جاهزة للاستخدام.

مثال كامل للكود: تحويل GIF إلى DICOM باستخدام Aspose.Slides Cloud SDK

يعرض الكود التالي التنفيذ الكامل لمثال تحويل GIF إلى DICOM في Python.

import os
import glob
from asposeslidescloud import SlidesApi, ApiException, Configuration

# -------------------- Setup Aspose.Slides Cloud SDK and Authentication --------------------
# Replace with your actual Aspose Cloud credentials
CLIENT_ID = "YOUR_CLIENT_ID"
CLIENT_SECRET = "YOUR_CLIENT_SECRET"

config = Configuration()
config.api_key['client_id'] = CLIENT_ID
config.api_key['client_secret'] = CLIENT_SECRET
# Optional: set the base URL if you use a different region
# config.host = "https://api.aspose.cloud"

slides_api = SlidesApi(configuration=config)

# -------------------- Prepare GIF Input and Define DICOM Parameters --------------------
INPUT_FOLDER = "gif_inputs"
OUTPUT_FOLDER = "dicom_outputs"
os.makedirs(OUTPUT_FOLDER, exist_ok=True)

# Example DICOM metadata (if the API supports passing them as query parameters)
# Here we just illustrate the idea; actual parameter names may differ.
dicom_params = {
    "patientName": "John Doe",
    "patientId": "123456",
    "studyDescription": "Sample GIF to DICOM conversion"
}

# -------------------- Write Python Script for GIF to DICOM Conversion Example --------------------
def convert_gif_to_dicom(gif_path: str, dicom_path: str):
    """
    Converts a single GIF file to DICOM format using Aspose.Slides Cloud SDK.
    """
    try:
        # Read the GIF file into memory
        with open(gif_path, "rb") as gif_file:
            # The SDK method `convert_local` returns the converted file bytes.
            # Pass the desired output format ("dicom") and any additional parameters.
            result_bytes = slides_api.convert_local(
                file=gif_file,
                format="dicom",
                # The following dictionary is illustrative; adjust according to SDK docs.
                **dicom_params
            )
        # Write the resulting DICOM bytes to the output file
        with open(dicom_path, "wb") as out_file:
            out_file.write(result_bytes)
        print(f"Converted '{gif_path}' → '{dicom_path}'")
    except ApiException as e:
        print(f"API error while converting '{gif_path}': {e}")
    except Exception as ex:
        print(f"Unexpected error while converting '{gif_path}': {ex}")

# -------------------- Batch Convert GIF Files to DICOM in Python --------------------
def batch_convert_gif_folder(input_folder: str, output_folder: str):
    """
    Scans the input folder for *.gif files and converts each to DICOM,
    storing results in the output folder.
    """
    gif_files = glob.glob(os.path.join(input_folder, "*.gif"))
    if not gif_files:
        print(f"No GIF files found in '{input_folder}'.")
        return

for gif_file in gif_files:
        base_name = os.path.splitext(os.path.basename(gif_file))[0]
        dicom_file = os.path.join(output_folder, f"{base_name}.dcm")
        convert_gif_to_dicom(gif_file, dicom_file)

# -------------------- Execute Batch Conversion --------------------
if __name__ == "__main__":
    batch_convert_gif_folder(INPUT_FOLDER, OUTPUT_FOLDER)

ملاحظة: هذا المثال البرمجي يوضح الوظيفة الأساسية. قبل استخدامه في مشروعك، تأكد من تحديث أي مسارات ملفات وقيم التكوين لتتناسب مع بيئتك الفعلية، وتحقق من تثبيت جميع الاعتمادات المطلوبة بشكل صحيح، واختبر بدقة في بيئة التطوير الخاصة بك. إذا واجهت أي مشكلات، يرجى الرجوع إلى الوثائق الرسمية أو التواصل مع فريق الدعم للحصول على المساعدة.

استخدام cURL لاستدعاء Aspose.Slides Cloud Conversion Endpoint

فيما يلي طلبات REST التي تقوم بنفس مثال تحويل GIF إلى DICOM في Python عبر Aspose.Slides Cloud API.

  1. الحصول على رمز وصول (استبدل العناصر النائبة ببيانات الاعتماد الخاصة بك).
curl -X POST "https://api.aspose.cloud/connect/token" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. تحميل ملف GIF إلى التخزين المؤقت.
curl -X PUT "https://api.aspose.cloud/v3.0/slides/storage/file/gif_inputs/sample.gif" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@sample.gif"
  1. طلب التحويل إلى DICOM مع تمرير البيانات الوصفية الاختيارية.
curl -X POST "https://api.aspose.cloud/v3.0/slides/gif_inputs/sample.gif/convert/dicom?patientName=John%20Doe&patientId=123456&studyDescription=Sample%20GIF%20to%20DICOM%20conversion" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o "dicom_outputs/sample.dcm"
  1. قم بتنزيل ملف DICOM الناتج (إذا قمت بحفظه في مكان آخر).
curl -X GET "https://api.aspose.cloud/v3.0/slides/storage/file/dicom_outputs/sample.dcm" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o "sample.dcm"

لمزيد من التفاصيل حول معلمات الطلب، راجع مرجع API.

تثبيت وتكوين Aspose.Slides Cloud SDK for Python

يتم توزيع SDK عبر PyPI. قم بتثبيته باستخدام pip وتحقق من مسار التثبيت.

pip install asposeslidescloud

بعد التثبيت، قم بإنشاء ملف تكوين أو ضبط متغيرات البيئة باستخدام CLIENT_ID و CLIENT_SECRET الخاصين بك. يوضح مقتطف الشيفرة في قسم Steps كيفية بناء كائن Configuration.

إعدادات التحويل: الخيارات والمعلمات

يمكنك تخصيص إخراج DICOM عن طريق تعديل القاموس dicom_params. تشمل الحقول الشائعة معلومات المريض ووصف الدراسة.

dicom_params = {
    "patientName": "John Doe",
    "patientId": "123456",
    "studyDescription": "Sample GIF to DICOM conversion"
}

يمكن تمرير معلمات إضافية مثل دقة الصورة أو الضغط إذا كان الـ API يدعم ذلك؛ راجع مرجع API للحصول على القائمة الكاملة.

الأسئلة المتكررة

  • هل يمكنني تحويل ملف GIF واحد إلى DICOM باستخدام SDK؟
    نعم، يمكنك استدعاء طريقة convert_local لملف GIF فردي. راجع وثائق Aspose.Slides Cloud SDK for Python للحصول على التفاصيل.

  • كيف يمكنني تحويل ملفات GIF دفعيًا إلى DICOM باستخدام Python؟
    استخدم الدالة batch_convert_gif_folder. تقوم بمسح مجلد للعثور على ملفات *.GIF وتحويل كل منها، وهو مثالي لمجموعات الصور الكبيرة.

  • هل هناك طريقة لتحويل DICOM مرة أخرى إلى JPEG أو PNG?
    يركز SDK على التحويل إلى DICOM، ولكن يمكنك استخدام Aspose.Imaging Cloud SDK for .NET أو منتجات أخرى مدعومة لاستخراج الصور من ملفات DICOM.

  • ما هي خيارات الترخيص المتاحة وكيف يمكنني الحصول على ترخيص مؤقت؟
    يتطلب الاستخدام في الإنتاج ترخيصًا تجاريًا. يمكنك الحصول على ترخيص مؤقت للتقييم من صفحة الترخيص المؤقت.

المقالات ذات الصلة