將醫學影像從 DICOM 轉換為 JPG 是放射學應用程式在需要於網路入口或行動檢視器中顯示研究時的常見任務。 Aspose.HTML Cloud SDK for Python 提供一個強大的函式庫,負責在伺服器端處理繁重的工作。在本指南中,您將一步步學習如何在 Python 中實作 DICOM 到 JPG 的轉換,探索多執行緒選項,並了解如何使用 cURL 呼叫相同的服務以支援基於 REST 的工作流程。
DICOM 轉換為 JPG 的需求
放射科工作站經常收到必須渲染為輕量級 JPG 縮圖以快速預覽的 DICOM 檔案。開發人員需要一個解決方案:
- 讀取二進位 DICOM 資料,且不依賴外部影像函式庫。
- 將影像轉換為廣泛支援的格式(例如 JPG),同時保留診斷品質。
- 高效處理大量檔案,理想情況下使用平行處理。
使用桌面工具進行手動轉換既耗時,又無法在伺服器端管線中擴展,因而自動化 API 對於現代放射學軟體而言是必不可少的。
方法:最佳化雲端轉換工作流程
Aspose.HTML Cloud SDK for Python 提供基於雲端的 API,抽象化轉換邏輯。該服務:
- 接受原始 DICOM 位元組並返回 JPG 位元串。
- 在 Aspose 雲端執行,免除本機 DICOM 解析器的需求。
- 提供影像品質、解析度以及多執行緒執行的設定選項。
請參閱官方文件以了解驗證詳細資訊,並參考API 參考中本教程使用的 ConvertDocumentRequest 類別。
在 Python 中實作 DICOM 到 JPG 的轉換
以下是一個實用的逐步實作,您可以將其整合到任何放射科後端。
安裝 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)
注意: 此程式碼範例示範了核心功能。 在將其用於您的專案之前,請確保更新所有檔案路徑和設定值以符合實際環境,驗證所有必要的相依項目已正確安裝,並在開發環境中徹底測試。 若遇到任何問題,請參閱官方文件或聯繫支援團隊以獲得協助。
使用 cURL 透過 REST API 進行多執行緒轉換
如果您偏好純粹的 REST 方法,則可以使用 cURL 命令執行相同的轉換。這對於命令列自動化或與 CI 流水線的整合非常有用。
- 取得存取權杖
curl -X POST "https://api.aspose.cloud/connect/token" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- 上傳 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"
- 請求轉換為 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
- 下載已轉換的 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 to JPG conversion in Python 變得簡單,使用 Aspose.HTML Cloud SDK for Python。此函式庫負責繁重的工作,提供多執行緒執行以支援高吞吐量環境,並對影像品質提供細緻的控制。請務必取得適當的商業授權以用於正式部署;產品頁面上提供價格資訊,且可從臨時授權頁面取得臨時授權。透過上述程式碼和 cURL 範例,您現在即可將可靠的 DICOM 轉 JPG 轉換整合至任何放射學應用程式中。
常見問題
Aspose.HTML Cloud SDK 除了 DICOM 還能轉換哪些檔案格式?
該 SDK 支援廣泛的格式,包括 PDF、PNG、BMP、GIF、TIFF,以及 SVG。請參閱 說明文件 以取得完整清單。
是否可以在不安裝任何外部工具的情況下執行轉換?
是的。轉換完全在雲端執行,因此不需要本地 DICOM 庫或圖像處理工具。
多執行緒轉換如何提升效能?
透過平行發送多個轉換請求,您可以在 Aspose 伺服器上利用多個 CPU 核心,從而縮短大量 DICOM 檔案批次的總處理時間。
我可以在命令列腳本中使用 SDK 嗎?
當然可以。提供的 cURL 範例展示了命令列工作流程,且 Python 腳本可以直接從終端機或排程任務執行。