Arrotondare gli angoli
Arrotondare gli angoli di un’immagine sembra semplice, ma il raggio diventa geometricamente impossibile quando supera metà del lato più corto.
Esegui gratis nel browser
Questo calcolatore verifica larghezza, altezza e raggio proposto prima che venga applicato l’effetto. Una richiesta valida restituisce il raggio massimo consentito e una descrizione chiara della maschera alfa a rettangolo arrotondato. Un valore non valido genera subito un errore, aiutando strumenti di progettazione, script di esportazione e sistemi di contenuti a rifiutare impostazioni impossibili prima del rendering.
Verifichi il raggio prima di elaborare l’immagine
Inserisca la larghezza e l’altezza dell’immagine come numeri interi positivi di pixel, quindi specifichi il raggio desiderato per gli angoli. Il validatore individua il lato più corto e lo divide per due, ricavando il raggio massimo che può essere contenuto senza che gli archi di angoli opposti si incrocino. Per un’immagine di 1200 per 800, ad esempio, il lato più corto è di 800 pixel e il raggio massimo valido è 400 pixel. È accettato qualsiasi valore da zero a 400, inclusi quelli frazionari quando il motore di layout o rendering supporta la geometria subpixel. Un valore superiore viene rifiutato con un errore di input che riporta il limite calcolato. Questa verifica è utile prima di richiamare un trasformatore di immagini, perché separa una semplice decisione geometrica dalla decodifica, dal caricamento o dal rendering del file. Offre inoltre una regola coerente a moduli web e API, impedendo che un client riduca silenziosamente il valore mentre un altro fallisce. Larghezza e altezza devono essere interi positivi perché rappresentano dimensioni raster reali; il raggio deve essere un numero finito non negativo.
Comprenda la maschera a rettangolo arrotondato
Un risultato valido descrive una maschera alfa con la stessa larghezza e altezza dell’immagine sorgente. L’area centrale resta opaca. In ogni angolo, un arco pari a un quarto di cerchio con il raggio richiesto definisce il confine: i pixel interni al rettangolo arrotondato rimangono visibili, mentre quelli esterni ai quattro archi diventano trasparenti quando viene applicata la maschera. La capacità descrive l’operazione, ma non carica, decodifica o modifica alcun file. Un raggio pari a zero produce un normale rettangolo opaco, quindi nessun pixel viene rimosso dagli angoli. Al raggio massimo gli archi si incontrano lungo la dimensione più corta; un’immagine quadrata diventa pertanto un cerchio, mentre una rettangolare assume una forma simile a una capsula. La risposta ripete le dimensioni accettate, il raggio e il massimo calcolato insieme a una descrizione leggibile della maschera. Il risultato può così essere usato in registri, messaggi di convalida, specifiche grafiche e codice che deve spiegare l’effetto prima di richiamare un renderer. Non viene presunto alcun metodo di interpolazione, poiché l’antialiasing spetta al motore che applicherà la maschera.
Applichi una sola regola a design e automazione
Una convalida coerente del raggio evita piccole differenze tra mockup, siti web, applicazioni mobili e lavori di immagini in serie. Un design system può controllare le specifiche di avatar e schede prima di pubblicare i propri token. Un servizio multimediale può rifiutare una trasformazione non valida prima di assegnare risorse di elaborazione. Un negozio può verificare che l’arrotondamento scelto funzioni con tutte le dimensioni delle miniature generate. Poiché questa capacità esegue soltanto calcoli deterministici e costruzione di testo, input identici producono sempre lo stesso risultato; non usa rete, casualità, orologio, archiviazione né operazioni nascoste sulle immagini. Il calcolo conserva le dimensioni della tela originale, perché arrotondare gli angoli modifica la visibilità ai bordi e non la tela stessa. Il raggio massimo dipende soltanto dal lato più corto, quindi scambiare larghezza e altezza non cambia il limite consentito. Il prezzo API è $0.002 per richiesta e lo stesso calcolo puro può essere eseguito gratis nel browser. Usi la descrizione restituita come piano o registrazione della verifica, quindi passi il raggio convalidato al renderer separato che trasformerà realmente i pixel.
Casi d'uso
Controllare la geometria di un avatar
Verifichi che il raggio di una foto profilo sia valido e determini se un avatar quadrato diventerà perfettamente circolare.
Proteggere un’API di trasformazione
Rifiuti impostazioni impossibili prima di caricare, decodificare o renderizzare l’immagine sorgente.
Convalidare i token di design
Confronti i raggi condivisi con ogni formato e mantenga coerenti web, applicazioni mobili ed esportazioni.
Domande frequenti
Qual è il raggio massimo consentito?
È metà della dimensione più corta. Per un’immagine di 800 per 600, il raggio massimo è 300 pixel.
Che cosa accade se il raggio è troppo grande?
La richiesta fallisce con un errore di input che include il raggio massimo calcolato dalle dimensioni.
Questa capacità modifica il file dell’immagine?
No. Verifica le dimensioni e descrive la maschera alfa; un renderer separato deve applicarla ai pixel.
Il raggio può essere zero o frazionario?
Sì. Zero descrive una maschera rettangolare senza angoli rimossi; è ammesso ogni valore frazionario finito entro il limite.
L’arrotondamento cambia le dimensioni della tela?
No. La maschera mantiene larghezza e altezza originali e rende trasparenti soltanto i pixel esterni agli archi.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. Il calcolo deterministico può essere eseguito anche nel browser senza rete.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/image/round-corners \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"width":1200,"height":800,"radius":64}'const res = await fetch("https://api.kit.forhosting.com/image/round-corners", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"width": 1200,
"height": 800,
"radius": 64
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/round-corners",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"width": 1200,
"height": 800,
"radius": 64
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/round-corners", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"width":1200,"height":800,"radius":64}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"width":1200,"height":800,"radius":64}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/round-corners", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"width": 1200,
"height": 800,
"radius": 64
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.round_corners",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_mb | 15 |
max_megapixels | 12 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |