Преобразование анимированных медицинских графических файлов в формат, понятный радиологическим системам, может стать узким местом для разработчиков. 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)
- Batch Convert All GIF Files: Просканируйте входную папку и вызовите функцию преобразования для каждого файла.
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. -
Какие варианты лицензирования доступны и как получить временную лицензию?
Для коммерческого использования требуется коммерческая лицензия. Вы можете получить временную лицензию для оценки на странице страница временной лицензии.