Python'da OneNote'tan Görüntü Üstverisini Okuma
Her Image düğümü bir OneNote belgesinde ham piksel baytlarıyla birlikte meta verileri taşır: orijinal 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 bağlıysa bir köprü URL’si. Aspose.Note FOSS for Python, bu alanların tümünü Image sınıfı aracılığıyla ortaya çıkarır.
Önkoşullar
pip install aspose-noteGörüntü Özellikleri
| Property | Type | Description |
|---|---|---|
img.Bytes | bytes | Ham görüntü verisi. open(name, "wb").write(img.Bytes) ile diske yazın. |
img.FileName | str | None | Orijinal dosya adı .one dosyasında depolanır. Depolanmadıysa None. |
img.Width | float | None | Görünüm genişliği puan cinsinden. Depolanmadıysa None. |
img.Height | float | None | Görünüm yüksekliği puan cinsinden. Depolanmadıysa None. |
img.AlternativeTextDescription | str | None | Erişilebilirlik alternatif metin gövdesi. Ayarlanmamışsa None. |
img.AlternativeTextTitle | str | None | Erişilebilirlik alternatif metin başlığı. Ayarlanmamışsa None. |
img.HyperlinkUrl | str | None | Görüntü tıklanabilir bir bağlantıysa URL. Bağlantı yoksa None. |
img.Tags | list[NoteTag] | Bu görüntüye eklenmiş OneNote etiketleri (yıldız, onay kutusu vb.). |
Adım 1: Belgeyi Yükle ve Görselleri Bul
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 Meta Verilerini Oku
Kullanımdan önce tüm nullable alanları is not None ile koruyun:
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 Meta Veri Raporu ile Kaydet
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")Özelliğe Göre Görüntüleri Filtrele
Bağlantı içeren Görseller
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}")Alt metinli görseller
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.Bytesher zaman bulunur (okunamayan görüntüler içinb""döndürür, aslaNonedöndürmez). Kaydetmeden öncelen(img.Bytes) > 0kontrol edin.img.AlternativeTextTitlekaynak belge bir başlık ayarlamazsaNoneolabilir. Yedek olarakimg.AlternativeTextDescriptionkullanın.- Boyutlar nokta cinsindendir (1 nokta = 1/72 inç), PowerPoint ve PDF standartlarıyla eşleşir.