Skalierung & Zuschnitt
Diese Seite dokumentiert alle Operationen zur Steuerung von Bildabmessungen, Seitenverhältnis, Zuschnitt und Positionierung.
Resize
rs:%resizing_type:%width:%height:%enlarge:%extendDie Haupt-Skalierungsoperation. Kombiniert Skalierungstyp, Breite, Höhe, Enlarge und Extend in einer einzigen Anweisung. Alle Parameter sind optional und können weggelassen werden, um die Standardwerte zu verwenden.
| Parameter | Typ | Standard | Erlaubte Werte |
|---|---|---|---|
| resizing_type | string | fit | fit, fill, fill-down, force, auto |
| width | integer | 0 | Beliebige positive Ganzzahl, oder 0 für automatisch |
| height | integer | 0 | Beliebige positive Ganzzahl, oder 0 für automatisch |
| enlarge | boolean | false | 1, t, true zum Aktivieren |
| extend | compound | false:ce:0:0 | Siehe Extend |
Beispiele:
# In 300x200 einpassen, Seitenverhältnis beibehalten
rs:fit:300:200
# Exakt 400x400 ausfüllen, Überschuss abschneiden
rs:fill:400:400
# Exakte Abmessungen erzwingen (kann verzerren)
rs:force:500:300
# In 300x200 einpassen, kleine Bilder vergrößern erlaubt
rs:fit:300:200:1Rewrite-Rule-Beispiel:
Regex: ^/thumbnail/(\d+)x(\d+)/(.*) Target: /_sx/img/_/rs:fit:$1:$2/q:80/plain/$3
Size
s:%width:%height:%enlarge:%extendKurzform für Breite, Höhe, Enlarge und Extend -- ohne Angabe eines Skalierungstyps. Es wird der aktuelle Skalierungstyp verwendet (Standard: fit).
| Parameter | Typ | Standard | Erlaubte Werte |
|---|---|---|---|
| width | integer | 0 | Beliebige positive Ganzzahl, oder 0 für automatisch |
| height | integer | 0 | Beliebige positive Ganzzahl, oder 0 für automatisch |
| enlarge | boolean | false | 1, t, true zum Aktivieren |
| extend | compound | false:ce:0:0 | Siehe Extend |
Beispiel:
s:300:200Resizing Type
rt:%resizing_typeDefiniert, wie smoxy das Quellbild skaliert. Kann unabhängig oder als Teil der rs-Operation gesetzt werden.
| Parameter | Typ | Standard | Erlaubte Werte |
|---|---|---|---|
| resizing_type | string | fit | fit, fill, fill-down, force, auto |
Skalierungstypen im Detail
| Typ | Verhalten |
|---|---|
fit | Skaliert das Bild unter Beibehaltung des Seitenverhältnisses, sodass es vollständig in die angegebenen Abmessungen passt. Das Ergebnis ist gleich groß oder kleiner als die angegebene Größe. |
fill | Skaliert das Bild unter Beibehaltung des Seitenverhältnisses, sodass es die angegebenen Abmessungen vollständig ausfüllt. Überstehende Teile werden abgeschnitten. |
fill-down | Wie fill, aber wenn das skalierte Bild kleiner als die gewünschte Größe ist, wird das Ergebnis zugeschnitten, um das gewünschte Seitenverhältnis beizubehalten. |
force | Skaliert auf die exakten Abmessungen ohne Beibehaltung des Seitenverhältnisses. Das Bild kann dadurch verzerrt werden. |
auto | Wenn Quell- und Ergebnisbild die gleiche Ausrichtung haben (beide Hochformat oder beide Querformat), wird fill verwendet. Andernfalls wird fit verwendet. |
Beispiel:
rt:fillWidth
w:%widthSetzt die Breite des Ergebnisbildes unabhängig. Bei 0 berechnet smoxy die Breite aus der definierten Höhe und dem Seitenverhältnis des Quellbildes.
| Parameter | Typ | Standard | Erlaubte Werte |
|---|---|---|---|
| width | integer | 0 | Beliebige positive Ganzzahl, oder 0 für automatisch |
Beispiel:
# Auf 600px Breite skalieren, Höhe wird automatisch berechnet
w:600Rewrite-Rule-Beispiel:
Regex: ^/w/(\d+)/(.*) Target: /_sx/img/_/w:$1/q:80/plain/$2
Eine Anfrage an /w/800/media/photo.jpg skaliert das Bild auf 800px Breite.
Height
h:%heightSetzt die Höhe des Ergebnisbildes unabhängig. Bei 0 berechnet smoxy die Höhe aus der definierten Breite und dem Seitenverhältnis des Quellbildes.
| Parameter | Typ | Standard | Erlaubte Werte |
|---|---|---|---|
| height | integer | 0 | Beliebige positive Ganzzahl, oder 0 für automatisch |
Beispiel:
h:400Min Width
mw:%widthDefiniert die Mindestbreite des Ergebnisbildes.
| Parameter | Typ | Standard | Erlaubte Werte |
|---|---|---|---|
| width | integer | 0 | Beliebige positive Ganzzahl, oder 0 zum Deaktivieren |
WARNING
Wichtig: Wenn sowohl w als auch mw gesetzt sind, wird das endgültige Bild gemäß w zugeschnitten. Diese Kombination sollte mit Vorsicht verwendet werden.
Beispiel:
mw:200Min Height
mh:%heightDefiniert die Mindesthöhe des Ergebnisbildes.
| Parameter | Typ | Standard | Erlaubte Werte |
|---|---|---|---|
| height | integer | 0 | Beliebige positive Ganzzahl, oder 0 zum Deaktivieren |
WARNING
Wichtig: Wenn sowohl h als auch mh gesetzt sind, wird das endgültige Bild gemäß h zugeschnitten. Diese Kombination sollte mit Vorsicht verwendet werden.
Beispiel:
mh:200Enlarge
el:%enlargeSteuert, ob smoxy Bilder vergrößert, die kleiner als die Zielabmessungen sind.
| Parameter | Typ | Standard | Erlaubte Werte |
|---|---|---|---|
| enlarge | boolean | false | 1, t, true zum Aktivieren; 0, f, false zum Deaktivieren |
Standardmäßig werden Bilder, die kleiner als die angeforderte Größe sind, nicht hochskaliert. Diese Option aktivieren, wenn das Bild immer den angeforderten Abmessungen entsprechen soll.
Beispiel:
# Vergrößerung erlauben
el:1Extend
ex:%extend:%gravityWenn aktiviert und das skalierte Bild kleiner als die Zielabmessungen ist, wird die Leinwand auf die gewünschte Größe erweitert. Der erweiterte Bereich wird mit der Hintergrundfarbe gefüllt.
| Parameter | Typ | Standard | Erlaubte Werte |
|---|---|---|---|
| extend | boolean | false | 1, t, true zum Aktivieren |
| gravity | string | ce:0:0 | Jeder Gravity-Wert außer sm |
Beispiel:
# Leinwand erweitern, Bild oben platzieren
ex:1:no
# Leinwand erweitern, Bild zentrieren (Standard)
ex:1:ceExtend Aspect Ratio
exar:%extend:%gravityWenn aktiviert, wird die Leinwand des Bildes erweitert, um das gewünschte Seitenverhältnis zu erreichen. Der zusätzliche Bereich wird mit der Hintergrundfarbe gefüllt.
| Parameter | Typ | Standard | Erlaubte Werte |
|---|---|---|---|
| extend | boolean | false | 1, t, true zum Aktivieren |
| gravity | string | ce:0:0 | Jeder Gravity-Wert außer sm |
Beispiel:
exar:1:ceZoom
z:%zoom_x_y
z:%zoom_x:%zoom_yMultipliziert die Bildabmessungen mit dem angegebenen Faktor. Kann mit w und h kombiniert werden -- smoxy berechnet zuerst die Größe aus Breite/Höhe und multipliziert dann mit dem Zoom-Faktor.
| Parameter | Typ | Standard | Erlaubte Werte |
|---|---|---|---|
| zoom_x_y | float | 1 | Beliebiger Wert > 0 (einheitlich für beide Achsen) |
| zoom_x | float | 1 | Beliebiger Wert > 0 |
| zoom_y | float | 1 | Beliebiger Wert > 0 |
INFO
Hinweis: Im Gegensatz zu dpr beeinflusst die zoom-Option keine Gravity-Offsets, Wasserzeichen-Offsets oder Padding-Werte.
Beispiele:
# Abmessungen verdoppeln
z:2
# 1,5x Breite, 2x Höhe
z:1.5:2DPR (Device Pixel Ratio)
dpr:%dprMultipliziert die Bildabmessungen mit dem angegebenen Faktor für HiDPI-(Retina-)Displays.
| Parameter | Typ | Standard | Erlaubte Werte |
|---|---|---|---|
| dpr | float | 1 | Beliebiger Wert > 0 |
INFO
Hinweis: Im Gegensatz zu zoom beeinflusst die dpr-Option Gravity-Offsets, Wasserzeichen-Offsets und Padding-Werte mit. Das stellt sicher, dass die Struktur des Ergebnisbildes mit und ohne dpr konsistent bleibt.
Beispiel:
dpr:2Gravity
g:%type:%x_offset:%y_offsetSteuert, worauf smoxy beim Beschneiden von Bildteilen fokussiert (verwendet bei fill-Skalierung, crop und extend).
| Parameter | Typ | Standard | Erlaubte Werte |
|---|---|---|---|
| type | string | ce | Siehe Tabelle unten |
| x_offset | float | 0 | Absolute Pixel (>= 1) oder relativ (< 1) |
| y_offset | float | 0 | Absolute Pixel (>= 1) oder relativ (< 1) |
Gravity-Typen
| Wert | Position |
|---|---|
ce | Mitte (Standard) |
no | Norden -- oberer Rand |
so | Süden -- unterer Rand |
ea | Osten -- rechter Rand |
we | Westen -- linker Rand |
noea | Nordost -- obere rechte Ecke |
nowe | Nordwest -- obere linke Ecke |
soea | Südost -- untere rechte Ecke |
sowe | Südwest -- untere linke Ecke |
Spezielle Gravity-Typen
| Wert | Beschreibung |
|---|---|
sm | Smart Gravity -- erkennt automatisch den „interessantesten" Bereich des Bildes und verwendet ihn als Mittelpunkt. Offsets sind hier nicht anwendbar. |
fp:%x:%y | Fokuspunkt -- x und y sind Gleitkommazahlen zwischen 0 und 1, die den Mittelpunkt des Ergebnisbildes definieren. 0:0 ist oben links, 1:1 ist unten rechts. |
Beispiele:
# Vom oberen Rand beschneiden
g:no
# Von unten rechts beschneiden, mit 10px Offset
g:soea:10:10
# Smart Crop
g:sm
# Fokuspunkt bei 30 % von links, 70 % von oben
g:fp:0.3:0.7Rewrite-Rule-Beispiel -- Smart-Cropping-Thumbnails:
Regex: ^/smart/(\d+)x(\d+)/(.*) Target: /_sx/img/_/rs:fill:$1:$2/g:sm/q:80/plain/$3
Crop
c:%width:%height:%gravitySchneidet das Bild auf bestimmte Abmessungen zu -- vor der Skalierung. Nützlich, um einen bestimmten Bereich aus dem Quellbild zu extrahieren.
| Parameter | Typ | Standard | Erlaubte Werte |
|---|---|---|---|
| width | float | erforderlich | Absolute Pixel (>= 1) oder relativ (0-1). 0 = volle Quellbreite |
| height | float | erforderlich | Absolute Pixel (>= 1) oder relativ (0-1). 0 = volle Quellhöhe |
| gravity | string | verwendet Gravity-Option | Jeder Gravity-Wert |
Beispiele:
# 500x300 aus der Mitte zuschneiden
c:500:300:ce
# Oberes linkes Viertel (50 % von Breite und Höhe)
c:0.5:0.5:nowe
# 800x600 von oben zuschneiden
c:800:600:noTrim
t:%threshold:%color:%equal_hor:%equal_verEntfernt umgebende Hintergrundpixel, die einer Zielfarbe ähnlich sind. Wenn keine Farbe angegeben wird, erkennt smoxy die Hintergrundfarbe automatisch.
| Parameter | Typ | Standard | Erlaubte Werte |
|---|---|---|---|
| threshold | float | erforderlich | Farbähnlichkeitstoleranz (beliebige positive Zahl) |
| color | Hex-String | automatisch erkannt | 6-stelliger Hex-Farbwert ohne # (z. B. ffffff). FF00FF für transparente Hintergründe verwenden |
| equal_hor | boolean | false | 1, t, true -- gleiche Menge links und rechts entfernen |
| equal_ver | boolean | false | 1, t, true -- gleiche Menge oben und unten entfernen |
WARNING
Wichtig: Trim erfordert, dass das gesamte Bild in den Arbeitsspeicher geladen wird. Das erhöht den Speicherverbrauch und die Verarbeitungszeit erheblich. Bei großen Bildern mit Vorsicht verwenden. Animierte Bilder werden nicht unterstützt.
INFO
Tipp: Wenn die Hintergrundfarbe der Bilder bekannt ist, spart die explizite Angabe über den color-Parameter Ressourcen, da smoxy die Farbe nicht automatisch erkennen muss.
Beispiele:
# Hintergrund automatisch erkennen, Schwellenwert 10
t:10
# Weißen Hintergrund trimmen, gleichmäßig auf allen Seiten
t:10:ffffff:1:1
# Transparenten Hintergrund trimmen
t:10:FF00FF