Image Transform API#
Verwenden Sie Snapkits Image Transform API, um Echtzeitbildtransformationen über URL-Parameter durchzuführen. Basierend auf der Sharp↗-Bibliothek für Hochleistungsverarbeitung und CloudFront CDN bietet es weltweit schnelle Bildauslieferung.
Schnellstart#
Grundlegende Verwendung#
Fügen Sie Abfrageparameter zu hochgeladenen Bild-URLs für Echtzeittransformation hinzu:
GET https://{organization}-cdn.snapkit.studio
/{project}
/{path}
/{filename}
?w=800&h=600&fit=cover&flip=true&grayscale=true&dpr=2
URL-Komponenten:
{organization}
: Organisationsname (z.B.acme-corp
){project}
: Projektname{path}
: Ordnerpfad{filename}
: Bilddateiname- Abfrageparameter: Transformationsoptionen (
w
,h
,fit
, etc.)
Hauptfunktionen#
- Echtzeittransformation: Sofortige Bildtransformation über URL-Parameter
- CDN-Zwischenspeicherung: Schnelle Bildauslieferung von CloudFront nach der ersten Transformation
- Automatische Optimierung: Automatische Formatwahl basierend auf Browserfähigkeiten
- High-Resolution-Unterstützung: Responsive Bilderzeugung basierend auf DPR (Device Pixel Ratio)
Transformationsparameter-Referenz#
Größe & Layout#
Parameter | Typ | Beschreibung | Standard | Grenzen |
---|---|---|---|---|
w | number | Breite (Pixel) | Max 4.096px | |
h | number | Höhe (Pixel) | Max 4.096px | |
fit | string | Anpassungsmodus: | cover | |
dpr | number | Device Pixel Ratio | 1.0 | 1.0-4.0 |
Transformation & Effekte#
Parameter | Typ | Beschreibung | Grenzen |
---|---|---|---|
rotation | number | Rotationswinkel (0-360 Grad, auto-normalisiert) | |
flip | boolean | Vertikale Spiegelung | |
flop | boolean | Horizontale Spiegelung | |
blur | number | Unschärfeintensität | Max 20 |
grayscale | boolean | In Graustufen konvertieren |
Bereich & Format#
Parameter | Typ | Beschreibung | Grenzen |
---|---|---|---|
extract | string | Bereich extrahieren: | Max 4.096x4.096 |
format | string | Ausgabeformat: |
Praktische Anwendungsbeispiele#
Responsive Bildoptimierung#
High-Resolution für Desktop
?w=800&h=600&dpr=2.0&format=webp&fit=cover
Mobile Optimierung
?w=375&dpr=3&format=auto&fit=cover
Thumbnail-Generierung
?w=200&h=200&fit=cover
Erweiterte Transformationskombinationen#
Portfolio-Galerie
?w=400&h=300&grayscale=true&blur=1&format=webp
Produktbilder
?w=600&h=600&fit=contain&format=auto
Bildvorschau
?extract=25,25,50,50&w=300&format=jpeg
Grundlegende Transformationsoptionen#
Größe ändern
?w=800&h=600&fit=cover
Drehen und spiegeln
?rotation=90&flip=true
Unschärfe- und Graustufen-Effekte
?blur=2&grayscale=true

Größe angepasst (w=300&h=200&fit=cover)

Transformationseffekte-Visualisierung#

Größe ändern + High-Resolution (w=300&h=200&fit=cover&dpr=2.0)







Device Pixel Ratio (DPR) Verwendung#
Passen Sie die tatsächliche Bildgröße für High-Resolution-Display-Unterstützung an. Berechnen Sie die tatsächliche Bildgröße, indem Sie die angegebene Größe mit dem DPR-Wert multiplizieren.
Wie DPR funktioniert#
w=300&dpr=1.0
→ Tatsächliche Bildgröße: 300px (300 × 1.0)w=300&dpr=1.5
→ Tatsächliche Bildgröße: 450px (300 × 1.5)w=300&dpr=2.0
→ Tatsächliche Bildgröße: 600px (300 × 2.0)
Der Browser zeigt immer noch in der angegebenen Größe (300px) an, lädt aber ein größeres Bild für scharfe Darstellung herunter.



Verwendungsbeispiele#
Desktop Standard-Auflösung
?w=400&h=300&dpr=2
Hochauflösende Retina Mobile
?w=400&h=300&dpr=3
Transformationsverarbeitungsreihenfolge#
Bildtransformationen werden in folgender Reihenfolge verarbeitet:
- Resize (Größenanpassung) - DPR angewendet
- Rotation (Rotation)
- Flip/Flop (Spiegelung)
- Blur (Unschärfe-Effekt)
- Grayscale (Graustufen-Konvertierung)
- Extract (Bereichsextraktion)
- Format (Formatkonvertierung)
Komplexe Transformationsbeispiele#
Sie können mehrere Transformationen kombinieren:
Größenanpassung + Graustufen + Unschärfe
?w=400&h=300&grayscale=true&blur=2
Bereichsextraktion + Rotation
?extract=25,25,50,50&rotation=90
High-Resolution-Display-Optimierung
?w=400&h=300&dpr=2.0&format=webp
Mobile responsive Bilder
?w=375&dpr=1.5&format=auto&fit=cover
Rotation und Spiegelung kombiniert
?rotation=45&flip=true&blur=1
Leistung & Zwischenspeicherung#
CloudFront CDN#
Alle transformierten Bilder werden auf CloudFront CDN zwischengespeichert für schnelle Auslieferung:
- Erste Anfrage: Originalbild transformieren und zwischenspeichern
- Nachfolgende Anfragen: Sofortige Auslieferung aus dem Cache
- Cache-Dauer: 1 Jahr
Accept Header-basierte Optimierung#
Wenn der format-Parameter auto
ist, wird das optimale Format automatisch basierend auf dem Accept-Header des Browsers ausgewählt:
- AVIF-unterstützende Browser: Konvertierung zu AVIF-Format
- WebP-unterstützende Browser: Konvertierung zu WebP-Format
- Standard-Browser: Konvertierung zu JPEG/PNG-Format
Systembeschränkungen & Schutzmaßnahmen#
Verarbeitungsbeschränkungen#
- Maximale Bildgröße: 4.096 x 4.096 Pixel
- Eingabepixel-Limit: 268.402.689 Pixel (ungefähr 16K x 16K)
- Unschärfe-Intensität: Maximum 20 (CPU-Schutz)
- DPR-Bereich: 1.0-4.0
Automatisches Fallback-System#
Automatische Behandlung bei Problemen während der Transformation:
- Parameterfehler: Automatische Korrektur ungültiger Werte
- Transformationsfehler: Rückgabe des Originalbildes
- Speichermangel: Verarbeitungsbeschränkungen gewährleisten Systemsicherheit
- Formatfehler: Konvertierung zu Standard-JPEG-Format
Speicheroptimierung#
- Cache deaktiviert: Sharp-Speicher-Cache nicht verwendet
- Automatische Bereinigung: Automatische Freigabe von Sharp-Bibliotheksinstanzen nach Verarbeitungsabschluss
- Einzelverarbeitung: Nebenläufigkeit zum Speicherschutz begrenzt
Integration & Verwendung#
Next.js Integration (Demnächst)#
Derzeit in Entwicklung. Demnächst verfügbar.
Bleiben Sie auf dem Laufenden:
- Treten Sie unserer Discord Community↗ bei
- Markieren und verfolgen Sie unser GitHub Repository↗
- Prüfen Sie Updates in unserem Blog
import { Image } from "@snapkit/nextjs";
<Image
src="https://{organization}-<your-org>-cdn.snapkit.studio/{project}/images/hero.jpg"
alt="Hero"
width={800}
height={600}
transforms={{
blur: 0,
format: "auto",
dpr: 2.0,
}}
/>;
Responsive Bildimplementierung#
const getResponsiveUrl = (src: string, width: number, mobile = false) => {
const dpr = mobile ? 1.5 : 3.0;
return `${src}?w=${width}&dpr=${dpr}&fit=cover&format=auto`;
};
// Verwendungsbeispiel
<picture>
<source media="(min-width: 768px)" srcSet={getResponsiveUrl(baseUrl, 800)} />
<img src={getResponsiveUrl(baseUrl, 400, true)} alt="Responsive" />
</picture>;
Nächste Schritte#
- Next.js Integrationsguide - Integration mit Webanwendungen mit @snapkit/nextjs
- Figma Plugin Verwendung - Direkte Bildoptimierung aus Design-Workflows
- Leistungsoptimierungstipps - Strategien zur Verbesserung der Website-Ladegeschwindigkeit