Конвертація медичних зображень з DICOM у JPG є поширеним завданням, коли радіологічні додатки потребують відображення досліджень у веб‑порталах або мобільних переглядачах. Aspose.HTML Cloud SDK for Python надає потужну бібліотеку, яка виконує важку роботу на стороні сервера. У цьому посібнику ви дізнаєтеся, як крок за кроком реалізувати конвертацію DICOM у JPG у Python, дослідити багатопотокові варіанти та побачити, як викликати той самий сервіс за допомогою cURL для робочих процесів на основі REST.

Вимоги до конвертації DICOM у JPG

Радіологічні робочі станції часто отримують файли DICOM, які потрібно перетворити у легкі JPG‑мініатюри для швидкого перегляду. Розробникам потрібне рішення, яке:

  • Читає бінарні дані DICOM без використання зовнішніх бібліотек зображень.
  • Перетворює зображення у широко підтримуваний формат, наприклад JPG, зберігаючи діагностичну якість.
  • Ефективно обробляє великі обсяги файлів, бажано з паралельною обробкою.

Ручне перетворення за допомогою настільних інструментів є часозатратним і не масштабується для серверних конвеєрів, тому автоматизований API є необхідним для сучасного радіологічного програмного забезпечення.

Підхід: Оптимізований хмарний процес конвертації

Aspose.HTML Cloud SDK for Python пропонує хмарний API, який абстрагує логіку конвертації. Сервіс:

  • Приймає необроблені байти DICOM і повертає потік байтів JPG.
  • Виконується в хмарі Aspose, усуваючи необхідність у локальних парсерах DICOM.
  • Надає параметри конфігурації для якості зображення, роздільної здатності та багатопотокового виконання.

Зверніться до офіційної документації для деталей автентифікації та довідки API щодо класу ConvertDocumentRequest, який використовується в цьому підручнику.

Реалізація конвертації DICOM у JPG у Python

Нижче наведено практичну покрокову реалізацію, яку ви можете інтегрувати в будь‑який радіологічний бекенд.

Встановити Aspose.HTML Cloud SDK for Python

pip install asposehtmlcloud

Налаштуйте API‑клієнт за допомогою ваших облікових даних

from asposehtmlcloud import HtmlApi, Configuration

config = Configuration()
config.api_key['api_key'] = api_key               # Replace with your actual API key
config.host = "https://api.aspose.cloud"

html_api = HtmlApi(config)

Завантажити DICOM файл у пам’ять

with open(input_file, "rb") as f:
    dicom_bytes = f.read()

Створити запит на конвертацію у формат JPG

from asposehtmlcloud import ConvertDocumentRequest

request = ConvertDocumentRequest(
    file=dicom_bytes,
    format="jpg"
)

Записати байти JPG на диск

jpg_bytes = html_api.convert_document(request)

with open(output_file, "wb") as out_f:
    out_f.write(jpg_bytes)

З цими кроками процес конвертації DICOM у JPG завершено, і тепер ви можете інтегрувати утиліту у більші конвеєри або викликати її з командних скриптів.

Утиліта конвертації DICOM у JPG - Повний приклад коду

Наступний приклад демонструє повний процес від початку до кінця.

import os
from asposehtmlcloud import HtmlApi, Configuration, ConvertDocumentRequest

def dicom_to_jpg(input_file: str, output_file: str, api_key: str):
    # Configure Aspose.HTML Cloud SDK
    config = Configuration()
    config.api_key['api_key'] = api_key               # Replace with your actual API key
    config.host = "https://api.aspose.cloud"

# Initialize the API client
    html_api = HtmlApi(config)

# Read the DICOM file into memory
    with open(input_file, "rb") as f:
        dicom_bytes = f.read()

# Build the conversion request (target format: jpg)
    request = ConvertDocumentRequest(
        file=dicom_bytes,
        format="jpg"
    )

# Perform conversion – the response is a binary stream of the JPG image
    jpg_bytes = html_api.convert_document(request)

# Write the resulting JPG to disk
    with open(output_file, "wb") as out_f:
        out_f.write(jpg_bytes)

if __name__ == "__main__":
    # Example usage
    INPUT_DICOM = "sample.dcm"          # Path to your source DICOM file
    OUTPUT_JPG = "sample_converted.jpg" # Desired output path
    API_KEY = "YOUR_ASPOSE_CLOUD_API_KEY"

dicom_to_jpg(INPUT_DICOM, OUTPUT_JPG, API_KEY)

Примітка: Цей приклад коду демонструє основну функціональність. Перш ніж використовувати його у вашому проєкті, переконайтеся, що ви оновили всі шляхи до файлів та значення конфігурації відповідно до вашого реального середовища, перевірте, чи всі необхідні залежності встановлені правильно, і ретельно протестуйте у вашому середовищі розробки. Якщо ви зіткнетеся з будь-якими проблемами, будь ласка, зверніться до офіційної документації або зв’яжіться з командою підтримки для отримання допомоги.

Багатопотокове перетворення за допомогою REST API з використанням cURL

Якщо ви віддаєте перевагу чистому підходу REST, те ж саме перетворення можна виконати за допомогою команд cURL. Це корисно для автоматизації в командному рядку або інтеграції з CI‑конвеєрами.

  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. Завантажте файл DICOM
curl -X PUT "https://api.aspose.cloud/v4.0/html/storage/file/sample.dcm" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/dicom" \
     --data-binary "@sample.dcm"
  1. Запит на конвертацію у JPG
curl -X POST "https://api.aspose.cloud/v4.0/html/convert?format=jpg" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"FileName":"sample.dcm"}' \
     -o sample_converted.jpg
  1. Завантажте конвертований JPG (якщо не збережено безпосередньо)
curl -X GET "https://api.aspose.cloud/v4.0/html/storage/file/sample_converted.jpg" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o sample_converted.jpg

Ці команди ілюструють багатопотоковий процес конвертації, де кілька файлів можуть оброблятися паралельно шляхом одночасного виконання кількох пар завантаження/конвертації. Для отримання повної інформації про API дивіться офіційну документацію API.

Налаштування параметрів конвертації DICOM у JPG

SDK дозволяє точно налаштувати вихідні дані. Типові параметри включають:

  • Якість зображення - Налаштуйте рівень стискання JPEG (0‑100).
  • Роздільна здатність - Встановіть DPI для виводу високої роздільної здатності.
  • Колірний режим - Виберіть між градаціями сірого та кольором, якщо DICOM містить кольорові дані.

Ви можете передати ці параметри у тілі запиту. Наприклад, щоб встановити якість:

request = ConvertDocumentRequest(
    file=dicom_bytes,
    format="jpg",
    options={"quality": 90}
)

Усі підтримувані параметри описані у API довідці. Експериментуйте з цими налаштуваннями, щоб досягти оптимального балансу між розміром файлу та діагностичною чіткістю, особливо під час роботи з великими наборами даних DICOM.

Висновок

Конвертація DICOM у JPG у Python стає простою завдяки Aspose.HTML Cloud SDK для Python. Бібліотека виконує важку роботу, пропонує багатопотокове виконання для середовищ з високою пропускною здатністю та забезпечує детальний контроль якості зображення. Не забудьте отримати належну комерційну ліцензію для виробничих розгортань; деталі ціноутворення доступні на сторінці продукту, а тимчасову ліцензію можна отримати на сторінці тимчасової ліцензії. За допомогою наведеного коду та прикладів cURL ви можете інтегрувати надійну конвертацію DICOM у JPG у будь-який радіологічний застосунок вже сьогодні.

Часті питання

Які формати файлів може конвертувати Aspose.HTML Cloud SDK, окрім DICOM?
SDK підтримує широкий спектр форматів, включаючи PDF, PNG, BMP, GIF, TIFF, та SVG. Дивіться документацію для повного списку.

Чи можливо виконати конвертацію без встановлення будь-яких зовнішніх інструментів?
Так. Конвертація виконується повністю в хмарі, тому локальні бібліотеки DICOM або інструменти обробки зображень не потрібні.

Як багатопотокове перетворення підвищує продуктивність?
Використовуючи кілька запитів на конвертацію паралельно, ви можете залучити кілька ядер процесора на серверах Aspose, скорочуючи загальний час обробки великих пакетів DICOM‑файлів.

Чи можу я використовувати SDK у скрипті командного рядка?
Безумовно. Наведені приклади cURL демонструють робочий процес у командному рядку, а скрипт Python можна виконати безпосередньо з терміналу або запланованого завдання.

Читати далі