OneNote'tan Görüntü Üstverisini Python ile Okuma

OneNote'tan Görüntü Üstverisini Python ile Okuma

Her Image OneNote belgesindeki düğüm, ham piksel baytlarıyla birlikte meta verileri taşır: özgün dosya adı, görüntü boyutları (genişlik ve yükseklik puan cinsinden), erişilebilirlik için alternatif metin ve isteğe bağlı olarak görüntü bir bağlantıya sahipse bir köprü URL’si. Aspose.Note FOSS for Python bu alanların tümünü şu sınıf aracılığıyla ortaya çıkarır Image sınıf.


Önkoşullar

pip install aspose-note

Görüntü Özellikleri

ÖzellikTürAçıklama
img.BytesbytesHam görüntü verisi. Disk’e şu ile yaz open(name, "wb").write(img.Bytes).
img.FileName`strNone`
img.Width`floatNone`
img.Height`floatNone`
img.AlternativeTextDescription`strNone`
img.AlternativeTextTitle`strNone`
img.HyperlinkUrl`strNone`
img.Tagslist[NoteTag]Bu resme eklenmiş OneNote etiketleri (yıldız, onay kutusu, vb.).

Adım 1: Belgeyi Yükleyin ve Görüntüleri Bulun

from aspose.note import Document, Image

doc = Document("MyNotes.one")
images = doc.GetChildNodes(Image)
print(f"Found {len(images)} image(s)")

Adım 2: Her Görüntünün Üstverisini Okuyun

Tüm nullable alanları şununla koruyun is not None kullanmadan önce:

from aspose.note import Document, Image

doc = Document("MyNotes.one")

for i, img in enumerate(doc.GetChildNodes(Image), start=1):
    print(f"\nImage {i}:")
    print(f"  Filename:    {img.FileName or '(no filename)'}")
    print(f"  Size:        {img.Bytes and len(img.Bytes):,} bytes")

    if img.Width is not None and img.Height is not None:
        print(f"  Dimensions:  {img.Width:.1f} × {img.Height:.1f} pts")

    if img.AlternativeTextDescription:
        print(f"  Alt text:    {img.AlternativeTextDescription}")

    if img.HyperlinkUrl:
        print(f"  Hyperlink:   {img.HyperlinkUrl}")

    if img.Tags:
        for tag in img.Tags:
            print(f"  Tag:         {tag.Label or tag.Icon}")

Tam Örnek: Görüntüleri Üstveri Raporu ile Kaydedin

from pathlib import Path
from aspose.note import Document, Image

def report_and_save_images(one_path: str, out_dir: str = "images") -> None:
    doc = Document(one_path)
    images = doc.GetChildNodes(Image)
    if not images:
        print("No images found.")
        return

    out = Path(out_dir)
    out.mkdir(exist_ok=True)

    for i, img in enumerate(images, start=1):
        # Determine save name
        name = img.FileName or f"image_{i}.bin"
        dest = out / name

        # Save bytes
        dest.write_bytes(img.Bytes)

        # Report metadata
        dims = (
            f"{img.Width:.0f}×{img.Height:.0f}pts"
            if img.Width is not None and img.Height is not None
            else "unknown size"
        )
        alt = img.AlternativeTextDescription or ""
        link = img.HyperlinkUrl or ""

        print(f"  [{i}] {name}  {dims}"
              + (f"  alt='{alt}'" if alt else "")
              + (f"  url={link}" if link else ""))

    print(f"\nSaved {len(images)} image(s) to '{out_dir}/'")

report_and_save_images("MyNotes.one")

Görüntüleri Özelliğe Göre Filtrele

Köprüleri Olan Görüntüler

from aspose.note import Document, Image

doc = Document("MyNotes.one")
linked = [img for img in doc.GetChildNodes(Image) if img.HyperlinkUrl]
for img in linked:
    print(f"{img.FileName or 'image'}{img.HyperlinkUrl}")

Alternatif Metni Olan Görüntüler

from aspose.note import Document, Image

doc = Document("MyNotes.one")
with_alt = [img for img in doc.GetChildNodes(Image) if img.AlternativeTextDescription]
for img in with_alt:
    print(f"{img.FileName}: {img.AlternativeTextDescription}")

Notlar

  • img.Bytes her zaman mevcuttur (döndürür b"" okunamayan görüntüler için, asla None). Kontrol et len(img.Bytes) > 0 kaydetmeden önce.
  • img.AlternativeTextTitle olabilir None kaynak belge bir başlık ayarlamazsa. Kullan img.AlternativeTextDescription yedek olarak.
  • Boyutlar şunlardadır nokta (1 nokta = 1/72 inç), PowerPoint ve PDF konvansiyonlarıyla eşleşir.

Ayrıca Bakınız

 Türkçe