تبدیل گرافیک‌های پزشکی متحرک به فرمتی که سیستم‌های رادیولوژی درک می‌کنند می‌تواند برای توسعه‌دهندگان گره‌گیری باشد. Aspose.Slides Cloud SDK for Python کتابخانه قدرتمندی را فراهم می‌کند که این کار را ساده می‌سازد. در این راهنما، مثال کاملی از تبدیل GIF به DICOM در پایتون خواهید دید، نحوه تنظیم احراز هویت، پردازش دسته‌ای را یاد می‌گیرید و تماس‌های معادل cURL برای ادغام REST را بررسی می‌کنید.

نحوه تبدیل تصاویر GIF به فایل‌های DICOM با استفاده از پایتون - گام به گام

  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 را در پایتون نشان می‌دهد.

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 تک را با استفاده از SDK به DICOM تبدیل کنم؟
    بله، می‌توانید متد convert_local را برای یک فایل GIF جداگانه فراخوانی کنید. برای جزئیات به مستندات Aspose.Slides Cloud SDK for Python مراجعه کنید.

  • چگونه می‌توانم فایل‌های GIF را به صورت دسته‌ای به DICOM در پایتون تبدیل کنم؟
    از تابع batch_convert_gif_folder استفاده کنید. این تابع یک پوشه را برای فایل‌های *.GIF اسکن می‌کند و هر کدام را تبدیل می‌نماید، که برای مجموعه‌های بزرگ تصویر ایده‌آل است.

  • آیا راهی برای تبدیل DICOM به JPEG یا PNG وجود دارد؟
    این SDK بر تبدیل به DICOM متمرکز است، اما می‌توانید از Aspose.Imaging Cloud SDK for .NET یا سایر محصولات پشتیبانی‌شده برای استخراج تصاویر از فایل‌های DICOM استفاده کنید.

  • چه گزینه‌های مجوزی موجود است و چگونه می‌توانم یک مجوز موقت دریافت کنم؟
    برای استفاده در تولید، یک مجوز تجاری لازم است. می‌توانید یک مجوز موقت برای ارزیابی از صفحه صفحه مجوز موقت دریافت کنید.

مقالات مرتبط