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

  1. 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.

  1. 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)
  1. Crea la funzione di conversione: Usa convert_local per 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)
  1. 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)
  1. 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.

  1. 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"
  1. 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"
  1. 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"
  1. 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 metodo convert_local per 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 funzione batch_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.

Articoli correlati