Animasyonlu tıbbi grafiklerin radyoloji sistemlerinin anlayabileceği bir formata dönüştürülmesi, geliştiriciler için bir darboğaz olabilir. Aspose.Slides Cloud SDK for Python bu görevi basitleştiren güçlü bir kütüphane sağlar. Bu rehberde Python’da tam bir GIF‑DICOM dönüşüm örneği görecek, kimlik doğrulamayı nasıl ayarlayacağınızı, toplu işleme nasıl yapılacağını öğrenecek ve REST entegrasyonu için eşdeğer cURL çağrılarını keşfedeceksiniz.

Python Kullanarak GIF Görüntülerini DICOM Dosyalarına Dönüştürme - Adım Adım

  1. Kimlik Doğrulamayı Yapılandır ve SlidesApi’yi Başlat: İstemci kimlik bilgilerinizi ayarlayın ve bir SlidesApi örneği oluşturun.
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)

Bu adım, Python’da GIF’ten DICOM’a dönüşüm örneği için ortamı hazırlar.

  1. Giriş ve Çıkış Klasörlerini Tanımla: Kaynak GIF’ler ve oluşturulan DICOM dosyaları için klasörler oluşturun.
import os

INPUT_FOLDER = "gif_inputs"
OUTPUT_FOLDER = "dicom_outputs"
os.makedirs(OUTPUT_FOLDER, exist_ok=True)
  1. Dönüştürme Fonksiyonunu Oluşturun: GIF’i DICOM’a dönüştürmek için convert_local kullanın, isteğe bağlı meta verileri geçirin.
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. Tüm GIF Dosyalarını Toplu Olarak Dönüştür: Giriş klasörünü tarayın ve her dosya için dönüşüm fonksiyonunu çağırın.
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. Betik’i Çalıştır: Modül doğrudan çalıştırıldığında toplu dönüşümü çalıştırın.
if __name__ == "__main__":
    batch_convert_gif_folder(INPUT_FOLDER, OUTPUT_FOLDER)

Betik, Python’da GIF’ten DICOM’a dönüşüm örneğini tamamlar ve size kullanıma hazır DICOM dosyaları bırakır.

Tam Kod Örneği: GIF’ten DICOM Dönüşümü Aspose.Slides Cloud SDK Kullanarak

Aşağıdaki kod, Python’da GIF’ten DICOM’a dönüşüm örneğinin tam uygulamasını gösterir.

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)

Not: Bu kod örneği temel işlevselliği göstermektedir. Projenizde kullanmadan önce, dosya yollarını ve yapılandırma değerlerini gerçek ortamınıza uygun şekilde güncellediğinizden, gerekli tüm bağımlılıkların doğru şekilde yüklendiğinden emin olun ve geliştirme ortamınızda kapsamlı bir şekilde test edin. Herhangi bir sorunla karşılaşırsanız, lütfen resmi belgelere bakın veya destek ekibi ile iletişime geçin.

cURL Kullanarak Aspose.Slides Bulut Dönüştürme Uç Noktasını Çağırma

Aşağıda, Python aracılığıyla Aspose.Slides Cloud API’de aynı GIF’ten DICOM’a dönüşüm örneğini gerçekleştiren REST çağrıları bulunmaktadır.

  1. Erişim belirteci alın (yer tutucuları kimlik bilgilerinizle değiştirin).
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. GIF dosyasını yükleyin geçici depolamaya.
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. DICOM’a dönüşüm isteği opsiyonel meta verileri geçirerek.
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. Oluşturulan DICOM dosyasını indirin (eğer başka bir yere kaydettiyseniz).
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"

İstek parametreleri hakkında daha fazla ayrıntı için, API referansı sayfasına bakın.

Kurulum ve Yapılandırma Aspose.Slides Cloud SDK for Python

SDK, PyPI aracılığıyla dağıtılır. pip ile kurun ve kurulum yolunu doğrulayın.

pip install asposeslidescloud

Kurulumdan sonra, CLIENT_ID ve CLIENT_SECRET değerlerinizle bir yapılandırma dosyası oluşturun veya ortam değişkenlerini ayarlayın. Steps bölümündeki kod parçacığı, Configuration nesnesinin nasıl oluşturulacağını gösterir.

Dönüşüm Ayarları: Seçenekler ve Parametreler

DICOM çıktısını dicom_params sözlüğünü ayarlayarak özelleştirebilirsiniz. Yaygın alanlar hasta bilgileri ve çalışma açıklamasını içerir.

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

API tarafından destekleniyorsa, görüntü çözünürlüğü veya sıkıştırma gibi ek parametreler geçirilebilir; tam liste için API referansı adresine bakın.

Sıkça Sorulan Sorular

  • Tek bir GIF’i SDK kullanarak DICOM’a dönüştürebilir miyim?
    Evet, tek bir GIF dosyası için convert_local yöntemini çağırabilirsiniz. Ayrıntılar için Aspose.Slides Cloud SDK for Python belgelerine bakın.

  • Python’da GIF dosyalarını toplu olarak DICOM’a nasıl dönüştürürüm?
    batch_convert_gif_folder işlevini kullanın. Bir klasördeki *.GIF dosyalarını tarar ve her birini dönüştürür; bu, büyük görüntü setleri için idealdir.

  • DICOM’u tekrar JPEG veya PNG formatına dönüştürmenin bir yolu var mı?
    SDK, DICOM’a dönüştürmeye odaklanır, ancak DICOM dosyalarından görüntüleri çıkarmak için Aspose.Imaging Cloud SDK for .NET veya diğer desteklenen ürünleri kullanabilirsiniz.

  • Mevcut lisans seçenekleri nelerdir ve geçici bir lisans nasıl alabilirim?
    Üretim ortamında kullanım için ticari bir lisans gereklidir. Değerlendirme amacıyla geçici bir lisansı, geçici lisans sayfasından alabilirsiniz.

İlgili Makaleler