Aufbau der Kunden-JSON¶
Eine Kunden-JSON beschreibt einen Kundenstamm: Dateiklassifizierung, Eingangsrollen, Bildvorgaben und einzelne Print-, Web- und Videoausgänge. Die vollständige Feldliste des statisch gelesenen Readers steht in der Feldreferenz. Sie ersetzt kein EXE-validiertes Schema.
Dateiablage und Aktivierung¶
Im gelesenen IC/Form1.cs (Literalrevision 20261013) entsteht der Kundenordner aus Application.StartupPath plus Settings\JsonKunden\ (120–121). Geladen werden dort *.json ausschließlich im obersten Verzeichnis (TopDirectoryOnly, 204); jeder gefundene Dateiname wird übernommen und sein root bereits beim ersten Scan gelesen (214–237). Es gibt in diesem Reader keinen frei erfundenen fest gebundenen Kundendateinamen und keinen Rootkey active, mit dem man die ganze Datei deaktivieren könnte.
Das Handbuch ImageConvert-4 (09.10.2026), physisch 13/21, nennt verkürzt JsonGeneral/JsonKunden unter dem Programmverzeichnis. Das ist nicht dieselbe exakte Ablageangabe wie der Source mit Settings\. Den tatsächlichen Lieferstand vor Änderungen klären; nicht mehrere parallele aktive Kopien anlegen. Die globalen Einstellungen haben einen getrennten Reader und eine getrennte Ablage.
mainFolder.* sind dagegen kundenbezogene Datenordner, keine Orte der JSON-Datei. root wird im Reader von Leerzeichen auf Unterstriche umgeschrieben und um einen abschließenden Backslash ergänzt (562–563). Relative Ordnerteile werden mit dieser Basis kombiniert. Das ist keine Pfadvalidierung oder Sicherheitsfreigabe.
Vollstruktur des effektiven Readers¶
Die folgende Struktur zeigt alle normalisierten gelesenen Wertpfade einschließlich der Listenhelfer. Sie zeigt keine Beispielwerte oder Defaults. [] steht für einen Listeneintrag; konkrete Indexrollen stehen darunter. mainFolder.video.rootFolder ist separat als Pflichtprüfungs-Konflikt beschrieben, weil dessen Wert gerade nicht übernommen wird.
customerActionsVor[]
customerActions[]
customerMail
customerAddress
intro
refereceLine
salutation
customerScriptsVor[]
customerScripts[]
cutoutResult
fileExtensions
imageExtensions[]
nonImageExtensions[]
printExtensions[]
videoExtensions[]
imageDefaults
canvas
heightPercent
horizontalAlignment
verticalAlignment
widthPercent
printQuality
behaviorIfTooSmall
limitImageToSourceSize
minPixelEdge
shadow
angleDegrees
distancePx
opacityPercent
sizePx
spreadPercent
webQuality
limitImageToSourceSize
mainFolder
errorFolder
inbox
rootFolder
subFolder[]
actionsVor[]
actions[]
deleteFolders
name
scriptsVor[]
scripts[]
logFolder
nopicture
log
other
rootFolder
print
rootFolder
subFolder[]
actionsVor[]
actions[]
active
colorProfil
format
heightPx
limitImageToSourceSize
name
originalFolder
resolution
scriptsVor[]
scripts[]
specialSize
widthPx
video
subFolder[]
active
format
framesPersec
heightPx
imageFormat
mindestens
name
schaltpfade_v[]
specialSize
widthPx
web
actionsVor[]
actions[]
colorProfil
noTrim
rootFolder
scriptsVor[]
scripts[]
subFolder[]
actionsVor[]
actions[]
active
avif
chromeSubsampling
encoderSpeed
imageDepth
keepColorProfil
keepExif
keepXMP
lossless
canvas
heightPercent
horizontalAlignment
verticalAlignment
widthPercent
colorProfil
flatten
format
heightPx
limitImageToSourceSize
mindestens
name
noTrim
qualityJPG
resolution
schaltpfade[]
scriptsVor[]
scripts[]
specialSize
webp
keepExif
keepPSExtras
keepXMP
lossless
widthPx
name
root
webOptions
gifOptions
colorReduction
colors
dither
ditherAmount
interlaced
lossy
transparency
transparencyAmount
transparencyDither
webSnap
jpgOptions
blur
optimized
png24Options
interlaced
transparency
png8Options
colorReduction
colors
dither
ditherAmount
interlaced
transparency
transparencyAmount
transparencyDither
webSnap
switches
transparentBeschneiden
trim
useWeissBeschneiden
Listen sind positionsgebunden¶
- Inbox:
[0]temp,[1]entry,[2]reentry,[3]entry_noprint,[4]reentry_noprint,[5]90°,[6]180°,[7]270°,[8]refresh. Namen sind frei, die Rollen folgen der Position (580–593; Manual phys. 16). Temp kann beim Start vorhandene Dateien nach Error kopieren und löschen (596–609): nicht mit produktiven Daten ausprobieren. - Print:
[0]enthält nuroriginalFolder. Ausgänge sind[1]bis[4]; alle vier Namen werden verlangt (621–651). Slot 2 hat eine eigene JPEG-Verarbeitung,formatmacht ihn nicht beliebig austauschbar.bleibtist insbesondere für Print1, keine generelle Web-Originalarchivierung. - Web: ab
[0]; der erste fehlendenamebeendet die Liste (1054–1058). Die vier Standardziele super/detail/list/thumb müssen laut Handbuch physisch 21 vorhanden sein. Die globale Dimensioncounter.maxWebOutputsPerCustomerbegrenzt die internen Slots; sie ist kein Kundenkey. - Video: ebenfalls ab
[0], Ende beim ersten fehlenden Namen (1181–1189). Exakte KeysframesPersec,imageFormatund im Sourceschaltpfade_v[]. Der Source übernimmtmainFolder.video.rootFoldernicht als Wert, obwohl die Pflicht-Präfixliste diesen Pfad verlangt; die Videobasis wird aus dem Webroot abgeleitet (516,765–775). Handbuch und Reader hier nicht still gleichsetzen. - Aktionen/Skripte: Listen mit maximal zehn zusammenhängenden Skalareinträgen;
Vorvor, sonst nach dem jeweiligen Verarbeitungsschritt. Eingangslisten werden je Subfolder gelesen. Globale Printlisten kommen im Source aus Printslot 1, nicht ausmainFolder.print.actions/scripts*. Details: Aktionen auf Kundenebene, Print/Web-global, je Ausgang, je Eingang.
Was ist erforderlich, was ist optional?¶
Der Reader besitzt kein belastbares vollständiges JSON-Schema. Er wandelt Blattwerte in Strings um (8125–8141) und prüft eine Liste von Pflichtpräfixen mit Substringsuche (491–558). Manche Felder greift er unmittelbar ab, andere nur bei ContainsKey. Eine leere Struktur {} erzeugt selbst keinen Blattpfad und erfüllt damit nicht automatisch die Pflichtprüfung. Auch ein optional eingelesener String kann später für IndexOf oder EndsWith benötigt werden.
Darum steht der Status pro Feld in der Referenz: direkter Zugriff, bedingtes Einlesen, expliziter Fallback oder nur frischer C#-Arraywert. Beispielwerte werden niemals als Programmstandard ausgegeben. Fehlend/null/leer/[] sind nicht beliebig austauschbar. Insbesondere bei Booleans kein null anstelle false verwenden; bei Listen ist [null] kein leeres [].
Konkretes Optionsfragment: AVIF¶
Nur ein einzelnes Web-Ausgangsobjekt zur Veranschaulichung, keine vollständige Kundenkonfiguration. Die Nummer des Eintrags in mainFolder.web.subFolder[] bleibt separat festzulegen. encoderSpeed: 6 ist ein Beispiel, kein belegter Default und kein zugesicherter Wertebereich der installierten Photoshopversion.
{
"name": "web_avif\\",
"active": false,
"widthPx": 1200,
"heightPx": 1200,
"specialSize": "no",
"mindestens": false,
"format": "avif",
"qualityJPG": 80,
"avif": {
"keepColorProfil": false,
"keepExif": false,
"keepXMP": false,
"lossless": false,
"imageDepth": 8,
"chromeSubsampling": "444",
"encoderSpeed": 6
}
}
Die Schreibweisen sind exakt sourcegelesen (1072–1078). Trotzdem ist keepColorProfil im Form1-Saver ohne belegten Verbraucher. imageDepth/chromeSubsampling werden zu Descriptorbezeichnern verkettet, nicht im Reader als Enum validiert. Kein zusätzliches webp-Objekt im selben Ausgang empfehlen: gemeinsame Variablen können AVIF-Werte überschreiben. WEBP lossless wird zwar eingelesen, aber Savewebp setzt fest compressionLossy (6525–6558). Siehe AVIF, WEBP und die Optionsfelder.
Neuere Themen und historische Schreibweisen¶
cutoutResultist eine Freistelleignungsprüfung mit Skript und Infoflag19, kein automatisches Freistellen. Parameter und Voraussetzungen.mindestensist eine alternative Skalierungsregel (beide Kanten mindestens), kein Mindestqualitätswarnwert. Im Reader existiert außerdem ein Print/Web-Indexkonflikt; Video liest den Schalter ohne belegte spätere Nutzung. Exakte Grenzen.colorProfil, nichtcolorProfile: der Name wird fürConvertProfileverwendet. Historische Websiteanker bleiben, aber keine Readeraliase. Profilfeld.framesPersec/imageFormatersetzen historische Kleinschreibungen; Videoausgänge und Thumbnails.
Unveränderte Downloads sind historische Konfigurationsbeispiele. Nicht direkt als aktuelle Programmvorlage aktivieren. Diese Dokumentation führt keine Dateiaktivierung, keinen Produktlauf und keine Änderung einer Originalkonfiguration aus.
Quellen¶
Statischer Source IC/Form1.cs im inventarisierten Intake, Literalrevision 20261013: Ablage 120–121/204–237; Kundenreader 491–1227; Listenhelfer 1652–1699; JSON-Blattdump 8125–8141. Herstellerhandbuch ImageConvert-4, 09.10.2026, physische Seiten 13–21/73. Kein Abgleich mit einer installierten EXE; Konflikte werden ausdrücklich nicht durch Beispielkorrektur verborgen.