Перетворення анімованих медичних графік у формат, який розуміють радіологічні системи, може стати вузьким місцем для розробників. Aspose.Slides Cloud SDK for Python надає потужну бібліотеку, що спрощує це завдання. У цьому посібнику ви побачите повний приклад конвертації GIF у DICOM за допомогою Python, дізнаєтеся, як налаштувати автентифікацію, обробляти пакетну обробку та дослідити еквівалентні виклики cURL для інтеграції REST.
Як перетворити GIF‑зображення у файли DICOM за допомогою Python — крок за кроком
- Налаштування автентифікації та ініціалізація 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.
- Визначте вхідну та вихідну папки: Створіть папки для вихідних GIF‑файлів та згенерованих DICOM‑файлів.
import os
INPUT_FOLDER = "gif_inputs"
OUTPUT_FOLDER = "dicom_outputs"
os.makedirs(OUTPUT_FOLDER, exist_ok=True)
- Створіть функцію перетворення: Використайте
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)
- Пакетне конвертування всіх 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)
- Виконати скрипт: Запустіть пакетне перетворення, коли модуль виконується безпосередньо.
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.
- Отримайте токен доступу (замініть заповнювачі вашими обліковими даними).
curl -X POST "https://api.aspose.cloud/connect/token" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- Завантажте 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"
- Запит на конвертацію у 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"
- Завантажте отриманий файл 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‑файлів. -
Які варіанти ліцензування доступні і як я можу отримати тимчасову ліцензію?
Для продакшн використання потрібна комерційна ліцензія. Ви можете отримати тимчасову ліцензію для оцінки на сторінці тимчасових ліцензій.