La conversion de graphiques médicaux animés en un format compris par les systèmes de radiologie peut constituer un goulot d’étranglement pour les développeurs. Aspose.Slides Cloud SDK for Python fournit une bibliothèque puissante qui simplifie cette tâche. Dans ce guide, vous verrez un exemple complet de conversion de GIF vers DICOM en Python, apprendrez comment configurer l’authentification, gérer le traitement par lots et explorer les appels cURL équivalents pour l’intégration REST.
Comment transformer des images GIF en fichiers DICOM à l’aide de Python - Étape par étape
- Configurer l’authentification et initialiser SlidesApi : Définissez vos identifiants client et créez une instance 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)
Cette étape prépare l’environnement pour l’exemple de conversion GIF en DICOM en Python.
- Définir les dossiers d’entrée et de sortie : Créez des dossiers pour les GIFs source et les fichiers DICOM générés.
import os
INPUT_FOLDER = "gif_inputs"
OUTPUT_FOLDER = "dicom_outputs"
os.makedirs(OUTPUT_FOLDER, exist_ok=True)
- Créer la fonction de conversion : Utilisez
convert_localpour transformer un GIF en DICOM, en passant des métadonnées optionnelles.
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)
- Convertir en lot tous les fichiers GIF : Parcourez le dossier d’entrée et appelez la fonction de conversion pour chaque fichier.
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)
- Exécuter le script : Exécutez la conversion par lots lorsque le module est exécuté directement.
if __name__ == "__main__":
batch_convert_gif_folder(INPUT_FOLDER, OUTPUT_FOLDER)
Le script termine l’exemple de conversion de GIF en DICOM en Python et vous laisse avec des fichiers DICOM prêts à l’emploi.
Exemple complet de code : conversion de GIF en DICOM à l’aide de Aspose.Slides Cloud SDK
Le code suivant montre l’implémentation complète de l’exemple de conversion de GIF en 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)
Remarque : Cet exemple de code démontre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour tous les chemins de fichiers et les valeurs de configuration pour qu’ils correspondent à votre environnement réel, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.
Utilisation de cURL pour appeler le point de terminaison de conversion Aspose.Slides Cloud
Voici les appels REST qui effectuent le même exemple de conversion GIF en DICOM en Python via l’Aspose.Slides Cloud API.
- Obtenez un jeton d’accès (remplacez les espaces réservés par vos informations d’identification).
curl -X POST "https://api.aspose.cloud/connect/token" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- Téléverser un fichier GIF dans le stockage temporaire.
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"
- Demander la conversion en DICOM tout en transmettant des métadonnées facultatives.
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"
- Télécharger le fichier DICOM résultant (si vous l’avez enregistré ailleurs).
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"
Pour plus de détails sur les paramètres de requête, consultez la référence API.
Installation et configuration d’Aspose.Slides Cloud SDK for Python
Le SDK est distribué via PyPI. Installez‑le avec pip et vérifiez le chemin d’installation.
pip install asposeslidescloud
Après l’installation, créez un fichier de configuration ou définissez des variables d’environnement avec votre CLIENT_ID et CLIENT_SECRET. L’extrait de code dans la section Steps montre comment construire l’objet Configuration.
Paramètres de conversion : Options et paramètres
Vous pouvez personnaliser la sortie DICOM en ajustant le dictionnaire dicom_params. Les champs courants incluent les informations du patient et la description de l’étude.
dicom_params = {
"patientName": "John Doe",
"patientId": "123456",
"studyDescription": "Sample GIF to DICOM conversion"
}
Des paramètres supplémentaires tels que la résolution d’image ou la compression peuvent être transmis s’ils sont pris en charge par l’API ; consultez la référence API pour la liste complète.
Foire aux questions
-
Puis-je convertir un seul GIF en DICOM à l’aide du SDK ?
Oui, vous pouvez appeler la méthodeconvert_localpour un fichier GIF individuel. Consultez la documentation du Aspose.Slides Cloud SDK for Python pour plus de détails. -
Comment convertir en lot des fichiers GIF en DICOM avec Python ?
Utilisez la fonctionbatch_convert_gif_folder. Elle parcourt un dossier à la recherche des fichiers *.GIF et convertit chacun d’eux, ce qui est idéal pour de grands ensembles d’images. -
Existe-t-il un moyen de convertir DICOM en JPEG ou PNG?
Le SDK se concentre sur la conversion vers DICOM, mais vous pouvez utiliser Aspose.Imaging Cloud SDK for .NET ou d’autres produits pris en charge pour extraire les images des fichiers DICOM. -
Quelles options de licence sont disponibles et comment obtenir une licence temporaire ?
Une licence commerciale est requise pour une utilisation en production. Vous pouvez obtenir une licence temporaire à des fins d’évaluation depuis la page de licence temporaire.