Convertendo gráficos médicos animados para um formato que os sistemas de radiologia entendam pode ser um gargalo para desenvolvedores. Aspose.Slides Cloud SDK for Python fornece uma biblioteca poderosa que simplifica essa tarefa. Neste guia você verá um exemplo completo de conversão de GIF para DICOM em Python, aprenderá como configurar a autenticação, lidar com o processamento em lote e explorar chamadas equivalentes em cURL para integração REST.

Como Transformar Imagens GIF em Arquivos DICOM Usando Python - Passo a Passo

  1. Configure a Autenticação e Inicialize SlidesApi: Defina suas credenciais de cliente e crie uma instância 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)

Esta etapa prepara o ambiente para o exemplo de conversão de GIF para DICOM em Python.

  1. Definir Pastas de Entrada e Saída: Crie pastas para GIFs de origem e arquivos DICOM gerados.
import os

INPUT_FOLDER = "gif_inputs"
OUTPUT_FOLDER = "dicom_outputs"
os.makedirs(OUTPUT_FOLDER, exist_ok=True)
  1. Criar a Função de Conversão: Use convert_local para transformar um GIF em DICOM, passando metadados opcionais.
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. Conversão em lote de todos os arquivos GIF: Escaneie a pasta de entrada e chame a função de conversão para cada arquivo.
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. Execute o Script: Execute a conversão em lote quando o módulo for executado diretamente.
if __name__ == "__main__":
    batch_convert_gif_folder(INPUT_FOLDER, OUTPUT_FOLDER)

O script conclui o exemplo de conversão de GIF para DICOM em Python e deixa você com arquivos DICOM prontos‑para‑usar.

Exemplo de Código Completo: Conversão de GIF para DICOM usando Aspose.Slides Cloud SDK

O código a seguir mostra a implementação completa do exemplo de conversão de GIF para DICOM em 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 exemplo de código demonstra a funcionalidade principal. Antes de usá‑lo em seu projeto, certifique‑se de atualizar quaisquer caminhos de arquivo e valores de configuração para corresponder ao seu ambiente real, verifique se todas as dependências necessárias estão devidamente instaladas e teste minuciosamente em seu ambiente de desenvolvimento. Se encontrar algum problema, consulte a documentação oficial ou entre em contato com a equipe de suporte para obter assistência.

Usando cURL para chamar o endpoint de conversão do Aspose.Slides Cloud

Abaixo estão as chamadas REST que executam o mesmo exemplo de conversão de GIF para DICOM em Python via a Aspose.Slides Cloud API.

  1. Obtenha um token de acesso (substitua os marcadores pelos seus credenciais).
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. Carregue um arquivo GIF para o armazenamento temporário.
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 conversão para DICOM ao passar metadados opcionais.
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. Baixe o arquivo DICOM resultante (se você o salvou em outro 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 mais detalhes sobre os parâmetros da solicitação, veja a referência da API.

Instalando e Configurando Aspose.Slides Cloud SDK para Python

O SDK é distribuído via PyPI. Instale‑o com pip e verifique o caminho de instalação.

pip install asposeslidescloud

Após a instalação, crie um arquivo de configuração ou defina variáveis de ambiente com seu CLIENT_ID e CLIENT_SECRET. O trecho de código na seção Steps mostra como criar o objeto Configuration.

Configurações de Conversão: Opções e Parâmetros

Você pode personalizar a saída DICOM ajustando o dicionário dicom_params. Campos comuns incluem informações do paciente e a descrição do estudo.

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

Parâmetros adicionais, como resolução de imagem ou compressão, podem ser passados se forem suportados pela API; consulte a referência da API para a lista completa.

Perguntas Frequentes

  • Posso converter um único GIF para DICOM usando o SDK?
    Sim, você pode chamar o método convert_local para um arquivo GIF individual. Consulte a documentação do Aspose.Slides Cloud SDK for Python para obter mais detalhes.

  • Como faço para converter em lote arquivos GIF para DICOM em Python?
    Use a função batch_convert_gif_folder. Ela varre uma pasta em busca de arquivos *.GIF e converte cada um, o que é ideal para grandes conjuntos de imagens.

  • Existe uma maneira de converter DICOM de volta para JPEG ou PNG?
    O SDK foca na conversão para DICOM, mas você pode usar Aspose.Imaging Cloud SDK for .NET ou outros produtos suportados para extrair imagens de arquivos DICOM.

  • Quais opções de licenciamento estão disponíveis e como posso obter uma licença temporária?
    É necessária uma licença comercial para uso em produção. Você pode obter uma licença temporária para avaliação na página de licença temporária.

Artigos Relacionados