/* AUSSCHNITT — schneidet ein Stueck aus einem PNG heraus und vergroessert es, damit man Details wirklich sieht. Warum ein eigenes Werkzeug: Ein Bildschirmfoto von 1600 px wird beim Ansehen heruntergerechnet. Ein 22-px-Zeichen darin ist danach ein Fleck aus vier Pixeln -- man beurteilt dann die Verkleinerung, nicht das Zeichen. Hier wird der Ausschnitt VOR dem Ansehen vergroessert, und zwar ohne Glaettung: So sieht man genau die Pixel, die auch der Bildschirm zeigt. Aufruf: node tools/ausschnitt.mjs [faktor] [ziel] */ import { readFileSync, writeFileSync } from "node:fs"; const [datei, x, y, b, h, faktor = "4", ziel = "/tmp/ausschnitt.png"] = process.argv.slice(2); if (!datei || !b) { console.error("Aufruf: node tools/ausschnitt.mjs [faktor] [ziel]"); process.exit(2); } const roh = readFileSync(datei).toString("base64"); const { chromium } = await import( "file:///C:/Users/qciga/Documents/Obelix/Analyse/node_modules/playwright/index.mjs"); const browser = await chromium.launch(); const seite = await (await browser.newContext({ deviceScaleFactor: 1 })).newPage(); const bb = Math.round(Number(b) * Number(faktor)); const hh = Math.round(Number(h) * Number(faktor)); await seite.setViewportSize({ width: bb, height: hh }); await seite.setContent(`
`, { waitUntil: "networkidle" }); writeFileSync(ziel, await seite.screenshot()); await browser.close(); console.log(ziel);