Convertire grafiche mediche animate in un formato che i sistemi di radiologia comprendono può rappresentare un collo di bottiglia per gli sviluppatori. Aspose.Slides Cloud SDK for Python fornisce una libreria potente che semplifica questo compito. In questa guida vedrai un esempio completo di conversione da GIF a DICOM in Python, imparerai come configurare l’autenticazione, gestire l’elaborazione batch e esplorare le chiamate cURL equivalenti per l’integrazione REST.
Come trasformare le immagini GIF in file DICOM con Python - Passo dopo passo
- Configura l’autenticazione e inizializza SlidesApi: Imposta le credenziali client e crea un’istanza di 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)
Questo passaggio prepara l’ambiente per l’esempio di conversione da GIF a DICOM in Python.
- Definisci le cartelle di input e output: crea le cartelle per i GIF di origine e i file DICOM generati.
import os
INPUT_FOLDER = "gif_inputs"
OUTPUT_FOLDER = "dicom_outputs"
os.makedirs(OUTPUT_FOLDER, exist_ok=True)
- Crea la funzione di conversione: Usa
convert_localper trasformare un GIF in DICOM, passando metadati opzionali.
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)
- Converti in batch tutti i file GIF: Scansiona la cartella di input e chiama la funzione di conversione per ogni file.
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)
- Esegui lo Script: Esegui la conversione batch quando il modulo viene eseguito direttamente.
if __name__ == "__main__":
batch_convert_gif_folder(INPUT_FOLDER, OUTPUT_FOLDER)
Lo script completa l’esempio di conversione da GIF a DICOM in Python e ti lascia con file DICOM pronti all’uso.
Esempio di codice completo: conversione da GIF a DICOM utilizzando Aspose.Slides Cloud SDK
Il codice seguente mostra l’implementazione completa dell’esempio di conversione da GIF a DICOM in 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)
Nota: Questo esempio di codice dimostra la funzionalità principale. Prima di usarlo nel tuo progetto, assicurati di aggiornare tutti i percorsi dei file e i valori di configurazione per corrispondere al tuo ambiente reale, verifica che tutte le dipendenze richieste siano correttamente installate e testa accuratamente nel tuo ambiente di sviluppo. Se incontri problemi, consulta la documentazione ufficiale o contatta il team di supporto per assistenza.
Utilizzare cURL per chiamare l’endpoint di conversione di Aspose.Slides Cloud
Di seguito sono riportate le chiamate REST che eseguono lo stesso esempio di conversione da GIF a DICOM in Python tramite l’Aspose.Slides Cloud API.
- Ottieni un token di accesso (sostituisci i segnaposto con le tue credenziali).
curl -X POST "https://api.aspose.cloud/connect/token" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- Carica un file GIF nello storage temporaneo.
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"
- Richiedi la conversione in DICOM mentre si passano i metadati opzionali.
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"
- Scarica il file DICOM risultante (se lo hai salvato altrove).
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"
Per ulteriori dettagli sui parametri della richiesta, consulta il riferimento API.
Installazione e configurazione di Aspose.Slides Cloud SDK per Python
L’SDK è distribuito tramite PyPI. Installalo con pip e verifica il percorso di installazione.
pip install asposeslidescloud
Dopo l’installazione, crea un file di configurazione o imposta le variabili d’ambiente con il tuo CLIENT_ID e CLIENT_SECRET. Lo snippet di codice nella sezione Steps mostra come costruire l’oggetto Configuration.
Impostazioni di conversione: opzioni e parametri
È possibile personalizzare l’output DICOM regolando il dizionario dicom_params. I campi comuni includono le informazioni del paziente e la descrizione dello studio.
dicom_params = {
"patientName": "John Doe",
"patientId": "123456",
"studyDescription": "Sample GIF to DICOM conversion"
}
Parametri aggiuntivi come la risoluzione dell’immagine o la compressione possono essere passati se supportati dall’API; fare riferimento al riferimento API per l’elenco completo.
Domande frequenti
-
Posso convertire una singola GIF in DICOM usando l’SDK?
Sì, è possibile chiamare il metodoconvert_localper un singolo file GIF. Vedi la documentazione di Aspose.Slides Cloud SDK for Python per i dettagli. -
Come posso convertire in batch i file GIF in DICOM con Python?
Usa la funzionebatch_convert_gif_folder. Scansiona una cartella alla ricerca di file *.GIF e converte ciascuno, il che è ideale per insiemi di immagini di grandi dimensioni. -
Esiste un modo per convertire DICOM nuovamente in JPEG o PNG?
L’SDK si concentra sulla conversione in DICOM, ma è possibile utilizzare Aspose.Imaging Cloud SDK for .NET o altri prodotti supportati per estrarre le immagini dai file DICOM. -
Quali opzioni di licenza sono disponibili e come posso ottenere una licenza temporanea?
È necessaria una licenza commerciale per l’uso in produzione. È possibile ottenere una licenza temporanea per la valutazione dalla pagina della licenza temporanea.