Thumbnail-Größen mit korrektem Seitenverhältnis berechnen
Dieser Generator wandelt die Abmessungen eines Ausgangsbildes in einen sofort nutzbaren Satz von Thumbnail-Größen um.
Im Browser ausführen – kostenlos
Geben Sie ursprüngliche Breite und Höhe sowie alle benötigten Zielbreiten ein; Sie erhalten die passenden Höhen in derselben Reihenfolge. Jede Höhe wird aus dem Seitenverhältnis der Quelle berechnet und auf den nächsten ganzen Pixel gerundet. Das erleichtert die Planung responsiver Bilder, die Dokumentation von Medienvorgaben, die Vorbereitung von Skalierungsaufträgen und einheitliche Berechnungen in Teams oder automatisierten Abläufen.
Beginnen Sie mit Quellbild und benötigten Breiten
Geben Sie die ursprüngliche Breite und Höhe als positive ganze Pixelwerte ein. Übermitteln Sie anschließend eine Liste mit mindestens einer Zielbreite. Der Rechner verarbeitet bis zu hundert Breiten pro Anfrage. Das reicht für ausführliche responsive Bildsätze, Vorgaben in Content-Management-Systemen oder Asset-Listen von Marktplätzen, ohne einen unbegrenzten Auftrag zu erzeugen. Die Reihenfolge ist relevant: Ergebnisse erscheinen genau in der angeforderten Folge, und mehrfach genannte Breiten bleiben erhalten. Dadurch lässt sich die Antwort leicht einer vorhandenen Liste von Breakpoints oder Exportaufträgen zuordnen. Verwenden Sie möglichst die tatsächlichen Pixelmaße der Quelle statt eines vereinfachten Verhältnisses. Ein Foto mit 4032 mal 3024 Pixeln und das Verhältnis 4 zu 3 beschreiben zwar dieselbe Form, doch reale Maße machen die Anfrage verständlicher und verringern das Risiko, Breite und Höhe zu vertauschen. Sämtliche Abmessungen müssen positive Ganzzahlen sein. Null, negative Werte, Dezimalzahlen, Zeichenketten, fehlende Maße, leere Listen und Listen oberhalb der festgelegten Grenze werden abgewiesen.
So wird die Höhe jedes Thumbnails berechnet
Für jede Zielbreite multipliziert der Rechner diesen Wert mit der ursprünglichen Höhe und teilt das Ergebnis durch die ursprüngliche Breite. Damit wird auf beide Achsen derselbe Skalierungsfaktor angewendet, das Seitenverhältnis der Quelle bleibt erhalten und das Bild wird weder gestreckt noch gestaucht. Pixelmaße müssen ganzzahlig sein, daher wird jede errechnete Höhe nach der üblichen JavaScript-Regel auf die nächstliegende Ganzzahl gerundet. Eine Quelle mit 1920 mal 1080 Pixeln ergibt beispielsweise bei einer gewünschten Breite von 800 Pixeln eine Höhe von 450 Pixeln. Manche Seitenverhältnisse und Zielbreiten führen zu Bruchteilen; durch die Rundung kann das dargestellte Verhältnis minimal abweichen, was bei Rasterausgaben unvermeidbar ist. Die Antwort enthält die Quellmaße, das numerische Verhältnis von Breite zu Höhe und einen Thumbnail-Datensatz je angeforderter Breite. Diese Funktion berechnet ausschließlich Maße. Sie lädt kein Bild herunter, untersucht, beschneidet, komprimiert, schärft oder skaliert keine Bilddaten und kann nicht gewährleisten, dass eine Vergrößerung kleiner Quellen eine ausreichende Bildqualität liefert.
Nutzen Sie das Ergebnis in responsiven und automatisierten Abläufen
Die zurückgegebene Thumbnail-Liste kann eine Bildverarbeitungswarteschlange, ein Build-Skript, eine Designübergabe oder die Konfiguration eines Content-Management-Systems speisen. Ein Frontend-Team kann Breiten passend zu den Layout-Breakpoints anfordern und mit den berechneten Höhen Platz reservieren, bevor Bilder geladen werden. Ein Redaktionsteam kann die Datensätze beim Medienobjekt speichern, damit Bearbeitende die exakten Maße kennen, die mit einem separaten Werkzeug zu erzeugen sind. Eine API-Integration kann zuerst den Plan erstellen und prüfen und anschließend jeden Datensatz an einen Bildtransformationsdienst senden. Der Algorithmus ist deterministisch und verwendet weder Netzwerk noch Zufallswerte oder aktuelle Uhrzeit; dieselbe gültige Eingabe erzeugt daher stets dieselbe Ausgabe. Beachten Sie, dass dieses Werkzeug die vollständige Form der Quelle bewahrt und keine Ausschnitte mit festem Verhältnis erzeugt, etwa quadratische Avatare oder Vorschaukarten für soziale Netzwerke. Verlangt ein Ziel exakte Breite und Höhe in einem anderen Verhältnis, verwenden Sie einen Zuschnitt. Der API-Preis beträgt $0.002 pro Anfrage, unabhängig von der Anzahl der enthaltenen zulässigen Zielbreiten.
Anwendungsfälle
Responsive Bildvarianten planen
Berechnen Sie vor der Erzeugung von srcset-Varianten die passende Höhe für jeden Breakpoint.
Thumbnail-Vorgaben im CMS festlegen
Wandeln Sie ein Quellverhältnis und eine redaktionelle Breitenliste in einheitliche ganzzahlige Pixelmaße um.
Stapelaufträge zur Skalierung vorbereiten
Erstellen Sie einen geordneten Maßplan, den ein anderes Werkzeug ohne erneute Verhältnisberechnung ausführen kann.
Häufige Fragen
Was kostet die Nutzung?
Die API kostet $0.002 pro Anfrage; der Rechner kann außerdem im Browser ausgeführt werden.
Wie wird die jeweilige Höhe berechnet?
Jede Zielbreite wird mit der Quellhöhe multipliziert und durch die Quellbreite geteilt; anschließend wird auf den nächsten ganzen Pixel gerundet.
Skaliert dieses Werkzeug das Bild?
Nein. Es gibt nur einen Maßplan zurück und liest, lädt, beschneidet oder verändert keine Bildpixel.
Kann ich eine leere Liste von Zielbreiten senden?
Nein. Mindestens eine Zielbreite ist erforderlich; eine leere Liste führt zu einem Fehler wegen ungültiger Eingabe.
Werden doppelte Zielbreiten entfernt?
Nein. Eingabereihenfolge und Duplikate bleiben erhalten, sodass jedes Ergebnis direkt der angeforderten Liste entspricht.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/image/thumbnail-set \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"width":1920,"height":1080,"target_widths":[1200,800,320]}'const res = await fetch("https://api.kit.forhosting.com/image/thumbnail-set", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"width": 1920,
"height": 1080,
"target_widths": [
1200,
800,
320
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/thumbnail-set",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"width": 1920,
"height": 1080,
"target_widths": [
1200,
800,
320
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/thumbnail-set", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"width":1920,"height":1080,"target_widths":[1200,800,320]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"width":1920,"height":1080,"target_widths":[1200,800,320]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/thumbnail-set", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"width": 1920,
"height": 1080,
"target_widths": [
1200,
800,
320
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.thumbnail_set",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 15 |
max_megapixels | 12 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |