Kaip nuskaityti paveikslėlio metaduomenis iš OneNote naudojant Python
Kiekvienas Image mazgas OneNote dokumente neša metaduomenis kartu su neapdorotais pikselių baitais: originalų failo pavadinimą, rodymo matmenis (plotį ir aukštį taškais), alternatyvų tekstą prieinamumui ir, jei paveikslėlis buvo susietas, pasirenkamą hipersaito URL. Aspose.Note FOSS for Python atskleidžia visus šiuos laukus per Image klasę.
Būtinosios sąlygos
pip install aspose-noteVaizdo savybės
| Savybė | Tipas | Aprašymas |
|---|---|---|
img.Bytes | bytes | Neapdoroti paveikslėlio duomenys. Įrašykite į diską naudodami open(name, "wb").write(img.Bytes). |
img.FileName | str | None | Originalus failo pavadinimas saugomas .one faile. None jei nesaugomas. |
img.Width | float | None | Rodymo plotis taškais. None jei nesaugomas. |
img.Height | float | None | Rodymo aukštis taškais. None jei nesaugomas. |
img.AlternativeTextDescription | str | None | Prieinamumo alternatyvaus teksto turinys. None jei nenustatyta. |
img.AlternativeTextTitle | str | None | Prieinamumo alternatyvaus teksto pavadinimas. None jei nenustatyta. |
img.HyperlinkUrl | str | None | URL, jei paveikslėlis yra paspaudžiamas hipersaitas. None jei nesusietas. |
img.Tags | list[NoteTag] | OneNote žymės, priskirtos šiam paveikslėliui (žvaigždutė, žymimasis langelis ir kt.). |
Žingsnis 1: Įkelti dokumentą ir rasti paveikslus
from aspose.note import Document, Image
doc = Document("MyNotes.one")
images = doc.GetChildNodes(Image)
print(f"Found {len(images)} image(s)")Žingsnis 2: perskaityti metaduomenis kiekvienam vaizdui
Apsaugokite visus nullable laukus naudodami is not None prieš naudojimą:
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}")Pilnas pavyzdys: Išsaugoti vaizdus su metaduomenų ataskaita
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")Filtruoti vaizdus pagal savybę
Vaizdai su hipersaitais
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}")Vaizdai su alternatyviu tekstu
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}")Pastabos
img.Bytesvisada yra (grąžinab""neperskaitomoms nuotraukoms, niekadaNone). Patikrinkitelen(img.Bytes) > 0prieš išsaugant.img.AlternativeTextTitlegali būtiNone, jei šaltinio dokumentas nenustato pavadinimo. Naudokiteimg.AlternativeTextDescriptionkaip atsarginį variantą.- Matmenys yra taškeliais (1 taškas = 1/72 colio), atitinka PowerPoint ir PDF konvencijas.