Перетворення анімованих медичних графік у формат, який розуміють радіологічні системи, може стати вузьким місцем для розробників. 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 у Python.

  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 на Python і залишає вас з готовими до використання файлами 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

Нижче наведено 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 для 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‑файлів.

  • Які варіанти ліцензування доступні і як я можу отримати тимчасову ліцензію?
    Для продакшн використання потрібна комерційна ліцензія. Ви можете отримати тимчасову ліцензію для оцінки на сторінці тимчасових ліцензій.

Пов’язані статті