Profilbild zuschneiden
Diese Funktion schneidet ein Foto in Sekunden zum Profilbild zurecht – quadratisch oder rund, in der gewünschten Größe. Sie läuft vollständig im Browser: Der Ausschnitt entsteht auf Ihrem Gerät, das Originalfoto wird nirgendwo hochgeladen, und die Nutzung ist unbegrenzt und kostenlos.
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Warum das im Browser reicht
Einen quadratischen oder runden Ausschnitt aus einem Foto zu berechnen, braucht keine Serverleistung – Ihr eigenes Gerät schafft das in Sekundenbruchteilen. Deshalb läuft die Funktion vollständig als Skript im Browser: Sie wählen Ausschnitt und Zielgröße, das fertige Profilbild entsteht direkt vor Ihren Augen und lässt sich sofort herunterladen. Das Foto selbst verlässt dabei zu keinem Zeitpunkt Ihr Gerät, und es entstehen auch bei wiederholter Nutzung keine Wartezeiten, weil kein Server in den Ablauf eingebunden ist.
Für welche Plattform welches Format
Die üblichen Zielgrößen unterscheiden sich: Ein Firmenprofil auf LinkedIn verlangt ein anderes Seitenverhältnis als ein Team-Avatar im internen Chat oder das runde Profilbild einer App. Sie legen Zielgröße und Form frei fest, statt sich auf eine feste Voreinstellung zu verlassen. Wer mehrere Profile gleichzeitig pflegt, exportiert einfach mehrmals in unterschiedlichen Maßen aus demselben Ausgangsfoto, ohne die Datei zwischendurch erneut hochzuladen oder ein zweites Programm zu öffnen.
Automatisierung über die API
Wer Profilbilder nicht einzeln, sondern im Rahmen einer Anmeldestrecke oder eines internen Tools erzeugen will, kann dieselbe Funktion per API ansprechen – etwa $0.002 pro Anfrage, falls die Verarbeitung serverseitig statt im Browser des Endnutzers laufen soll. Für die normale Nutzung auf der Seite selbst fällt dagegen nichts an: Sie ist und bleibt kostenlos, unabhängig davon, wie oft Sie sie im Laufe eines Tages aufrufen.
Anwendungsfälle
Vereinsverwaltung ohne Bildbearbeitungsprogramm
Ein Sportverein in Bremen bittet neue Mitglieder um ein Profilbild für die Mitgliederkartei. Statt eines Bildbearbeitungsprogramms reicht der Link zur Funktion – jedes Foto kommt in einheitlicher Größe zurück.
Team-Avatare vor dem ersten Arbeitstag
Katrin Baumann bereitet bei der Schneider IT-Systeme GmbH & Co. KG neue Mitarbeiterprofile vor. Jedes eingesandte Bewerbungsfoto wird in wenigen Klicks zum einheitlichen Avatar für das interne Verzeichnis.
Freiberufler pflegt mehrere Profile
Lukas Fischer braucht für LinkedIn, die eigene Website und ein Branchenverzeichnis jeweils ein anderes Format desselben Fotos. Er schneidet dreimal aus derselben Datei zu, ohne etwas zu installieren.
Häufige Fragen
Verlässt mein Foto den Browser?
Nein. Der Zuschnitt wird vollständig auf Ihrem Gerät berechnet; das Foto wird nicht an einen Server übertragen.
Ist die Nutzung wirklich unbegrenzt?
Ja. Solange Sie die Funktion über die Seite im Browser nutzen, gibt es kein Limit und keine Kosten – auch nicht bei hundert Profilbildern hintereinander.
Kann ich einen runden Ausschnitt erzeugen, nicht nur eckig?
Ja, Sie wählen zwischen quadratischem und rundem Ausschnitt sowie der gewünschten Zielgröße in Pixeln.
Brauche ich ein Konto?
Nein. Es gibt derzeit keine Konten – die Browser-Funktion ist ohne Anmeldung nutzbar.
Was kostet die Nutzung über die API?
Für die serverseitige Ausführung über die API fällt $0.002 pro Anfrage an – relevant nur, wenn Sie die Funktion automatisiert in ein eigenes System einbinden, nicht für die normale Nutzung im Browser.
Welche Bildformate werden unterstützt?
JPG, PNG und WebP als Eingabe; das Ergebnis erhalten Sie im gleichen Format oder wahlweise als PNG mit transparentem Rand beim runden Zuschnitt.
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/avatar \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/imagen.jpg"}'const res = await fetch("https://api.kit.forhosting.com/image/avatar", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/avatar",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/avatar", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/avatar", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"image": "https://ejemplo.com/imagen.jpg"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.avatar",
"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. |