Bildkomprimierung Automatisierung
Übersicht
Skalieren und komprimieren Sie Produktbilder in Sekunden in web-optimierte .jpg-, .webp- oder .avif-Dateien mit sharp. Dabei bleiben die Originaldateinamen erhalten, transparente PNGs werden auf weißem Hintergrund vereinheitlicht und die Seitenverhältnisse streng beibehalten (800px reine Höhenautoskala oder WxH exakte Prüfung).
Kernprinzip: Niemals ein Arbeitslaufwerk (F:\) annehmen, niemals ohne Bestätigung stillschweigend auf 800x800 oder jpg zurückfallen, und niemals ein Bild zuschneiden oder verzerren.
Kurzreferenz
| Situation | Aktion |
|---|---|
Erster Lauf (node_modules/ fehlt) | npm install ausführen (benötigt Node.js >= 20.0.0) |
.imagerc.json fehlt & kein --dir angegeben | Benutzer fragen nach ihrem Arbeitsordner vor dem Lauf |
| Zielgröße/Höhe oder Format nicht angegeben | Benutzer fragen nach Größe (800px Höhe oder WxH) und Format (jpg, webp oder avif) vor dem Lauf |
Benutzer gibt nur Höhe an (z.B. 800px in webp) | --size 800px --format webp übergeben (automatisch proportionale Breite pro Bild berechnet) |
Benutzer gibt Arbeitsordner + WxH + Format an | `node bin/cli.js --dir "" --size "" --format <jpg |
| Benutzer hat separate Roh- und Export-Ordner | `node bin/cli.js --input "" --output "" --size "<px |
Exakte WxH-Seitenverhältnis-Abweichung | Nicht croppen/strecken; passende Größen aus der Ausgabe melden (oder ggf. 800px Höhenmodus vorschlagen) |
| Transparenter PNG-Hintergrund | Automatisch auf #ffffff vereinheitlicht (änderbar über --bg "#hex") |
Schritt-für-Schritt Agent-Workflow
Befolgen Sie diese Schritte der Reihenfolge nach, wenn ein Benutzer Sie bittet, Bilder mit diesem Repository zu komprimieren oder zu skalieren:
1. Setup & Abhängigkeiten prüfen
- Überprüfen, ob
node_modules/sharpexistiert. Falls frisch geklont,npm installausführen. - Prüfen, ob
.imagerc.jsonim Stammverzeichnis des Repositories existiert (es sei denn, der Benutzer hat bereits einen Ordner in seiner Anfrage angegeben).- Wenn weder
.imagerc.jsonexistiert noch der Benutzer einen Ordner genannt hat, den Benutzer zuerst fragen: „Welchen Ordner möchten Sie für Ihreinput- undoutput-Bildordner verwenden? (Zum Beispiel./für diesen Projektordner,~/Desktop/store-imagesoderD:\Images.)“ - Niemals
F:\Image Compress Automationannehmen oder~/Desktopraten.
- Wenn weder
2. input/ prüfen & Größe + Format bestätigen
- Sicherstellen, dass
<ordner>/inputund<ordner>/outputexistieren (oder--dir "<ordner>"übergeben, damit das CLI sie erstellt). - Prüfen, wie viele unterstützte Bilder (
.png,.jpg,.jpeg,.webp,.avif) im Eingabeordner sind. Bei0den Benutzer über den genauen<ordner>/input-Pfad informieren, in den er seine Bilder legen soll, und dann anhalten. - Wenn der Benutzer nicht explizit die Zielhöhe/-abmessungen oder das Ausgabeformat in der aktuellen Anfrage genannt hat, vor der Ausführung fragen – auch wenn Nicht-TTY/Flag-lose Fallbacks standardmäßig
800x800undjpgverwenden.
3. Nicht-interaktiv ausführen & Ergebnisse melden
Das CLI explizit mit Flags ausführen (vermeiden Sie bloßes node bin/cli.js in Nicht-TTY-Tool-Shells, damit nichts auf stille Standardwerte angewiesen ist):
node bin/cli.js --dir "<arbeitsordner>" --size "<HÖHEpx oder BREITExHÖHE>" --format "<jpg|webp|avif>"
Optionale Flags, wenn vom Benutzer angefragt:
--format <jpg|webp|avif>(Standardjpg;webpist ~25–35 % kleiner,avifist ~30–50 % kleiner)--quality <1-100>(Standard85für JPGmozjpeg/ WebPeffort: 6und65für AVIFeffort: 4)--bg "<#hex>"(Standard#fffffffür transparentes PNG-Vereinheitlichen)--strict(gibt Exit-Code1zurück, wenn eine Datei übersprungen wird oder fehlschlägt)
Wenn der Benutzer diesen Arbeitsordner für interaktive Terminal-Läufe (npm start) speichern möchte, können Sie .imagerc.json (in .gitignore) erwähnen oder speichern oder den Benutzer bitten, npm run setup auszuführen.
4. Ausgabe überprüfen & zusammenfassen
Direkt aus der Befehlsausgabe berichten:
- Gesamtanzahl konvertierter / übersprungener / fehlgeschlagener Dateien und Speicherplatzersparnis (
MBund%). - Genauer Ausgabeordner-Pfad (
<arbeitsordner>/output). - Bei einem
aspect-ratio-mismatch-Überspringen die ursprünglichen Abmessungen/Verhältnis der Datei und die vom CLI ausgegebenen vorgeschlagenen proportionalen Abmessungen anzeigen.
Häufige Fehler & Warnsignale
| Gedanke / Fehler | Warum es fehlschlägt & was stattdessen zu tun ist |
|---|---|
„Ich führe einfach node bin/cli.js ohne --size oder --format aus“ | Nicht-TTY-Fallback wählt stillschweigend 800x800 und jpg. Bestätigen Sie immer zuerst Ordner, Größe/Höhe (800px oder WxH) und Format (jpg/webp/avif) mit dem Benutzer und übergeben Sie --dir, --size und --format. |
„Benutzer möchte 800×800 auf einem 1:2-Foto – ich übergebe fit: cover oder schreibe ein benutzerdefiniertes Crop-Skript“ | Verstößt gegen die Kernregel: niemals stillschweigend croppen oder strecken. Lassen Sie das CLI Abweichungen ablehnen und proportionale Abmessungen angeben. |
„Ich committe .imagerc.json oder Test-PNGs in input/“ | .imagerc.json, input/* und output/* (außer .gitkeep) sind in .gitignore eingetragen, um die Privatsphäre des Benutzers zu schützen. Lassen Sie sie unverfolgt. |
„Ich übergebe --input ohne --output“ | Ohne --output oder --dir fällt die Ausgabe auf <cwd>/output zurück. Übergeben Sie immer --dir (Standardablauf) oder sowohl --input als auch --output. |