Zielgruppe: Design-Ops und Automatisierungsverantwortliche, die PNG aus Figma, Sketch, Browsern oder Fotopipelines exportieren und in manchen Viewern eine falsche Vorschau-Orientierung sehen — oft wegen eines EXIF-Orientation-Tags (häufig im PNG-eXIf-Chunk), das nie normalisiert wurde. Auf einem Remote Mac kann OpenClaw dieselben Shell-Schritte zuverlässig kapseln: Inbox beobachten, Tag lesen, bei Bedarf physisch und verlustfrei drehen, Metadaten nach Policy zurücksetzen, dann unter deterministischem Namen ausliefern. Basis-Installation: OpenClaw-Installationsleitfaden (alle Plattformen); Retry und Logs: Watch, Retry & Log-Archiv sowie PNG-CLI-Kette & Retry (M-Serie).
Inhalt
Interne Verlinkung (Redaktion & SEO)
Diese Ziele ergänzen das Tutorial ohne Installations-Duplikate — nur Seiten, die im deutschsprachigen Blog bereits existieren.
- Grundinstallation: OpenClaw-Installationsleitfaden
- Watch, JSONL, Retries: PNG-Watch: Retries & Log-Archiv
- CLI-Ketten & Backoff: PNG-CLI-Kette & Retry (Remote Mac)
- Nach der Rotation — Farbe & ICC: ICC-Watch & Rename-Pipeline, PNG-Metadaten, ICC & verlustfreies Rekomprimieren
- Benennung & Validierung: PNG-Auto-Naming & Batch-Validierung
- Mehrfachauflösungen: Watch-Folder → PNG-Sets
- Verwandter Ingest: HEIC → PNG Watch-Folder
Typische Risiken vor dem ersten Lauf
- Tag ohne Pixeländerung: Manche Pipelines wenden Orientation nur in der Vorschau an — Rohbytes bleiben gedreht; andere Tools ignorieren EXIF. Ohne explizite Lesephase rotieren Sie Layout-Assets fälschlich.
- Halbfertige Schreibvorgänge: Exporte landen zuerst unter temporärem Namen oder werden von Sync kurz gesperrt; der Worker startet zu früh.
- Spiegel-Orientierungen (2, 4, 5, 7): Marken-PNGs sind selten gespiegelt gedacht — ohne Quarantäne-Policy riskieren Sie stille Layout-Fehler.
OpenClaw & Gateway: Minimaldeployment
Halten Sie den Remote Mac bewusst schlicht: ein Dienstbenutzer, eine festgepinnte OpenClaw-Version und ein Gateway, das /health nur auf 127.0.0.1 beantwortet. Folgen Sie dem Installationsleitfaden, legen Sie API-Tokens in ~/.config/openclaw.env (Modus 600) ab und prüfen Sie curl -sS http://127.0.0.1:<port>/health sowohl nach GUI-Login als auch per ssh user@host bash -lc '…' — nicht-interaktive Shells vermissen oft PATH-Einträge für magick und exiftool.
Minimal-Checkliste:
- Prozessbesitz: Watcher und OpenClaw unter derselben UID wie
inbox/undout/. - TCC: Wenn Terminal oder ein Hilfsbinary Ordner nicht lesen darf, unter Systemeinstellungen → Datenschutz & Sicherheit → Festplattenvollzugriff das exakte Binary freischalten.
- Firewall: Gateway nicht ins WAN stellen; bei Bedarf SSH-Port-Forwarding für Fern-Trigger.
- Skill-Grenze: EXIF- und Rotate-Schritte als Shell oder Python aus einem OpenClaw-Skill aufrufen — so testen Sie Befehle ohne vollen Agent-Loop.
which magick exiftool, magick -version und exiftool -ver aus demselben Wrapper-Skript wie der Watcher.
Ordner-Watch-Strategie
Design-Tools schreiben oft zuerst Teildateien. Lenken Sie Exporte auf eine dedizierte Inbox, z. B. ~/png_jobs/design_export/inbox auf lokaler SSD — nicht iCloud-Desktop oder SMB —, um halbe PNGs und Sync-Latenz zu vermeiden. Orientieren Sie sich an Watch-Folder → PNG-Sets: getrennte inbox, work, out, failed, logs.
Regeln, die echte Designer überleben:
- Filter
*.png;.DS_Store,*.tmp,*.crdownloadignorieren. - Stabile Größe: zwei identische
stat-Ergebnisse im Abstand von ca. 500 ms vor Enqueue. - Debounce: 1–3 s bei
fswatch; oderlaunchdWatchPathsmit kurzem Delay-Skript. - Ruhefenster bei Bursts: viele Dateien gleichzeitig — 30–60 s ohne neue PNGs warten, dann sortiert leeren (vgl. ICC-Watch-Pipeline).
- Single-Flight: ein Worker, damit parallele Exporte deterministisch serialisiert werden.
Reproduzierbarer Trigger (fswatch): brew install fswatch, Inbox als Pfad, innerer sleep kollabiert Burst-Events; Skriptpfad durch Ihren Worker ersetzen.
INBOX=~/png_jobs/design_export/inbox
fswatch -o "$INBOX" | while read -r; do
sleep 2
/usr/local/bin/your_png_exif_rotate_worker.zsh
done
launchd-Alternative: WatchPaths auf die Inbox und ein Wrapper-Skript mit 1–3 s Pause vor dem Worker — plist-Pfad im Repo dokumentieren.
EXIF-Orientation: Verarbeitungsablauf
Die Werte 1–8 beschreiben, wie Viewer Pixel drehen oder spiegeln sollen. Ein PNG wirkt in einer App korrekt, in einer Pipeline falsch, wenn dort nur Rohbytes ohne Tag-Auswertung gelesen werden. Ihre Automation soll zuerst den Tag lesen, dann pass-through, Rotation oder Quarantäne wählen.
Orientierung numerisch lesen:
exiftool -n -Orientation -s3 "$PNG"
Ist die Ausgabe leer oder 1, sind die Pixel meist schon „aufrecht“ — dennoch Breite/Höhe mit dem Design-Export abgleichen. Werte 3 (180°), 6 (90° im Uhrzeigersinn) und 8 (90° gegen den Uhrzeigersinn) sind in Produktpipelines am häufigsten; gespiegelte Werte 2, 4, 5, 7 verdienen eine explizite Policy (viele Teams lehnen Spiegelungen ab).
Policy-Matrix (Vorschlag):
| Orientation-Tag | Aktion | Hinweis |
|---|---|---|
| Fehlend oder 1 | Keine Rotation; Metadaten später optional strippen | UI-PNGs haben oft kein EXIF — nicht „kameraartig“ raten. |
| 3, 6, 8 | magick -auto-orient, dann Tag normalisieren |
Liefert physisch aufrechte Pixel für „dumme“ Consumer. |
| 2, 4, 5, 7 (gespiegelt) | Quarantäne oder explizites Flop+Rotate-Skript | Marken-Assets spiegeln selten — zur manuellen Sichtung. |
Nach der Rotation entweder exiftool -Orientation=1 -overwrite_original setzen oder EXIF gemäß PNG-Metadaten-Runbook entfernen, damit Downstream nicht doppelt anwendet.
Kennzahlen & Policy-Hinweise (zitierfähig)
- Debounce 1–3 s reduziert Doppeljobs bei Browser- und Plugin-Exports messbar.
- Drei Retries mit 5 / 20 / 60 s Backoff sind ein üblicher Kompromiss zwischen Robustheit und Warteschlangenlast (siehe CLI-Retry-Leitfaden).
- Eine JSONL-Zeile pro Datei mit
orientation_in, Hashes und Laufzeit-ms ermöglicht spätere Auswertung mitjqohne Binärparser.
Stapel: verlustfrei rotieren & Archiv-Benennung
Verlustfrei bedeutet hier: keine unbeabsichtigte Neuberechnung der Bildinhalte — 90°/180°-Drehungen an PNG sind typischerweise ohne Farbtiefenwechsel möglich; Neukomprimierung kann die Bytegröße dennoch ändern. Für zugesicherte Byte-Treue Golden-File-Tests und das Kapitel verlustfreies Rekomprimieren beachten.
Einzeldatei (ImageMagick 7):
magick "$IN" -auto-orient "$OUT"
exiftool -overwrite_original -Orientation=1 "$OUT"
Stapel-Skizze (zsh) — im OpenClaw-Skill oder LaunchAgent:
inbox=~/png_jobs/design_export/inbox
out_root=~/png_jobs/design_export/out/$(date +%F)
mkdir -p "$out_root"
for f in "$inbox"/*.png; do
[ -f "$f" ] || continue
ori=$(exiftool -n -Orientation -s3 "$f" 2>/dev/null || echo "")
[[ -z "$ori" || "$ori" == "1" ]] && cp -p "$f" "$out_root/$(basename "$f")" && continue
base=$(basename "$f" .png)
magick "$f" -auto-orient "$out_root/${base}_rot_v01.png"
exiftool -overwrite_original -Orientation=1 "$out_root/${base}_rot_v01.png"
done
Finalnamen mit PNG-Auto-Naming & Batch-Validierung abstimmen: Suffix _rot_v01 nur, wenn Pixel geändert wurden. Pro Datei eine JSONL-Zeile mit sha256_before, sha256_after, orientation_in und Dauer in ms.
Optional: nach der Rotation die ICC-Prüfung aus der ICC-Watch-Pipeline — Drehung sollte eingebettete Profile nicht ungültig machen, schlechte Tool-Ketten können sie aber entfernen; bei verlorenem sRGB-Embed nach quarantine/ verschieben.
FAQ: typische Fehler
exiftool meldet „Unknown file type“ für ein in der Vorschau sichtbares PNG.
Datei evtl. 0 Byte, umbenanntes JPEG oder auf einem Volume, das die Sandbox nicht liest. Magic Bytes mit xxd -l 8 prüfen (erwarte 89 50 4E 47); exiftool als Watcher-Benutzer ausführen.
-auto-orient ändert nichts, Vorschau bleibt gedreht.
Manche Tools speichern Orientierung nur in Sidecar-Metadaten; oder Export ohne EXIF bei nicht-quadratischen Pixeln — mit Design-Quelle abgleichen. Ohne Tag oder Freigabe nicht drehen.
Gateway 401 — Rotation startet nie.
Token-Scope oder fehlende Umgebung in launchd: launchctl print user/<uid>, EnvironmentVariables in der plist oder openclaw.env im Wrapper sourcen.
Datei wurde nach magick größer/kleiner — Fehler?
Nicht zwingend; PNG-Rekompression ändert Bytes. Dekodierte Pixel oder perceptual Hash vergleichen; Marketing kann Byte-identische Lieferung fordern — dokumentieren.
Operation not permitted auf der Inbox.
macOS TCC blockiert Binary oder SSH-Session. ls -leO auf dem Pfad, UID-Abgleich, ggf. Terminal/Hilfsprogramm unter Festplattenvollzugriff.
Fazit: Behandeln Sie EXIF-Orientation als Daten, die Sie vor jeder Pixeltransformation lesen; nutzen Sie auf dem Remote Mac entprellte Watches und Stabilitäts-Gates auf lokaler SSD; wenden Sie magick -auto-orient plus explizites Orientation=1 an, wenn Sie physisch drehen; archivieren Sie datiert mit JSONL, damit derselbe OpenClaw-Skill im nächsten Projekt wieder funktioniert. Für dauerhaft laufende Apple-Silicon-Kapazität ohne blockiertes Laptop — etwa nächtliche Batches und Watch-Folder — lohnt ein Miet-Mac bei MacPng: Angebote und Knoten sind auf den öffentlichen Seiten ohne Login einsehbar (Jetzt mieten / kaufen, Preise & Konfiguration, Hilfe & SSH/VNC). Weitere Pipelines im Technik-Insights-Index.
OpenClaw-PNG-Pipelines (EXIF, Rotation, Archiv) auf dediziertem Remote Mac
Vertiefung: OpenClaw-Installation, Watch & Retry-Archiv, ICC & verlustfreies Rekomprimieren.