Convertir gráficos médicos animados a un formato que los sistemas de radiología comprendan puede ser un cuello de botella para los desarrolladores. Aspose.Slides Cloud SDK for Python proporciona una biblioteca potente que simplifica esta tarea. En esta guía verás un ejemplo completo de conversión de GIF a DICOM en Python, aprenderás cómo configurar la autenticación, manejar el procesamiento por lotes y explorar llamadas equivalentes de cURL para la integración REST.

Cómo transformar imágenes GIF en archivos DICOM usando Python - Paso a paso

  1. Configurar la autenticación e inicializar SlidesApi: Establezca sus credenciales de cliente y cree una instancia de 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)

Este paso prepara el entorno para el ejemplo de conversión de GIF a DICOM en Python.

  1. Definir carpetas de entrada y salida: Crear carpetas para los GIFs de origen y los archivos DICOM generados.
import os

INPUT_FOLDER = "gif_inputs"
OUTPUT_FOLDER = "dicom_outputs"
os.makedirs(OUTPUT_FOLDER, exist_ok=True)
  1. Crear la función de conversión: Use convert_local para convertir un GIF a DICOM, pasando metadatos opcionales.
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. Convertir en lote todos los archivos GIF: Escanee la carpeta de entrada y llame a la función de conversión para cada archivo.
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. Ejecutar el script: Ejecuta la conversión por lotes cuando el módulo se ejecuta directamente.
if __name__ == "__main__":
    batch_convert_gif_folder(INPUT_FOLDER, OUTPUT_FOLDER)

El script completa el ejemplo de conversión de GIF a DICOM en Python y te deja con archivos DICOM listos para usar.

Ejemplo de código completo: Conversión de GIF a DICOM usando Aspose.Slides Cloud SDK

El siguiente código muestra la implementación completa del ejemplo de conversión de GIF a DICOM en 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: Este ejemplo de código demuestra la funcionalidad principal. Antes de usarlo en su proyecto, asegúrese de actualizar cualquier ruta de archivo y valores de configuración para que coincidan con su entorno real, verifique que todas las dependencias requeridas estén correctamente instaladas y pruebe exhaustivamente en su entorno de desarrollo. Si encuentra algún problema, consulte la documentación oficial o póngase en contacto con el equipo de soporte para obtener ayuda.

Usando cURL para llamar al endpoint de conversión de Aspose.Slides Cloud

A continuación se presentan las llamadas REST que realizan el mismo ejemplo de conversión de GIF a DICOM en Python mediante la API de Aspose.Slides Cloud.

  1. Obtener un token de acceso (reemplaza los marcadores de posición con tus credenciales).
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. Cargar un archivo GIF al almacenamiento temporal.
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. Solicitar conversión a DICOM mientras se pasan metadatos opcionales.
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. Descargar el archivo DICOM resultante (si lo guardó en otro lugar).
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"

Para obtener más detalles sobre los parámetros de la solicitud, consulte la referencia de API.

Instalación y configuración de Aspose.Slides Cloud SDK for Python

El SDK se distribuye a través de PyPI. Instálalo con pip y verifica la ruta de instalación.

pip install asposeslidescloud

Después de la instalación, cree un archivo de configuración o establezca variables de entorno con su CLIENT_ID y CLIENT_SECRET. El fragmento de código en la sección Steps muestra cómo crear el objeto Configuration.

Configuración de conversión: opciones y parámetros

Puede personalizar la salida DICOM ajustando el diccionario dicom_params. Los campos comunes incluyen información del paciente y la descripción del estudio.

dicom_params = {
    "patientName": "John Doe",
    "patientId": "123456",
    "studyDescription": "Sample GIF to DICOM conversion"
}

Se pueden pasar parámetros adicionales, como la resolución de la imagen o la compresión, si la API los admite; consulte la referencia de API para obtener la lista completa.

Preguntas frecuentes

  • ¿Puedo convertir un GIF único a DICOM usando el SDK?
    Sí, puedes llamar al método convert_local para un archivo GIF individual. Consulta la documentación del Aspose.Slides Cloud SDK for Python para obtener más detalles.

  • ¿Cómo convierto en lote archivos GIF a DICOM en Python?
    Utilice la función batch_convert_gif_folder. Esta escanea una carpeta en busca de archivos *.GIF y convierte cada uno, lo que es ideal para conjuntos de imágenes grandes.

  • ¿Existe alguna forma de convertir DICOM de nuevo a JPEG o PNG?
    El SDK se centra en la conversión a DICOM, pero puedes usar Aspose.Imaging Cloud SDK for .NET u otros productos compatibles para extraer imágenes de archivos DICOM.

  • ¿Qué opciones de licencia están disponibles y cómo puedo obtener una licencia temporal?
    Se requiere una licencia comercial para uso en producción. Puede obtener una licencia temporal para evaluación en la página de licencia temporal.

Artículos relacionados