L'adresse imgk, réglage par réglage
Une adresse imgk se lit comme une recette : le ?
ouvre les instructions, le & sépare chaque réglage,
et l'ordre n'a pas d'importance. La même adresse ressort toujours la même image, servie depuis le cache.
Le seul paramètre obligatoire est url= :
l'adresse publique de l'image d'origine (jpg, png, webp, avif, gif, heic d'iPhone, bmp, tiff, ico ou pdf).
Pense à encoder l'URL si elle contient elle-même des ? ou &.
Taille & cadrage
| Paramètre | Ce que ça fait | Exemple |
|---|---|---|
w |
Largeur en pixels (1–8192) | w=500 |
h |
Hauteur en pixels (1–8192) | h=500 |
fit |
Avec w et h : cover remplit en recadrant au centre, contain contient l'image entière (fond bg ou transparent). Défaut : cover | fit=contain |
dpr |
Multiplicateur Retina, 1 à 3 | dpr=2 |
max |
Plafond de la plus grande dimension — pratique sans connaître le ratio | max=1600 |
crop |
Découpe une zone précise : x,y,largeur,hauteur | crop=10,20,300,200 |
Format & poids
| Paramètre | Ce que ça fait | Exemple |
|---|---|---|
output |
png · jpg · webp · avif · gif · ico · pdf · auto. auto lit l'en-tête Accept et sert avif ou webp aux navigateurs qui savent. Sans output, le format de la source est conservé | output=auto |
q |
Qualité 1–100 (jpg, webp, avif) | q=80 |
optimized |
Compression intelligente : meilleurs réglages d'encodage + métadonnées retirées | optimized=true |
maxsize |
Poids maximum imposé : imgk baisse la qualité (puis les dimensions) jusqu'à tenir dessous | maxsize=200kb |
strip |
Retire les métadonnées EXIF, GPS et profils | strip=true |
Couleurs & effets
| Paramètre | Ce que ça fait | Exemple |
|---|---|---|
conversion |
white-black · sepia · invert · duotone · scan. Le mode scan redresse, nettoie et contraste une photo de document | conversion=scan |
duotone |
Les deux couleurs du duotone : ombres,lumières | duotone=0d1017,5b8cff |
blur |
Flou 0–100 | blur=20 |
sharpen |
Netteté 0–100 | sharpen=40 |
brightness |
Luminosité −100 à 100 | brightness=15 |
contrast |
Contraste −100 à 100 | contrast=20 |
saturation |
Saturation −100 à 100 | saturation=-100 |
Habillage
| Paramètre | Ce que ça fait | Exemple |
|---|---|---|
radius |
Coins arrondis en pixels, ou radius=max pour un cercle parfait (recadré au carré) | radius=max |
border |
Contour : épaisseur,couleur | border=4,5b8cff |
bg |
Remplace la transparence (et remplit contain, pad, rotate) | bg=ffffff |
pad |
Marge autour, en pixels | pad=40 |
rotate |
Rotation en degrés | rotate=90 |
flip |
Miroir : h (horizontal), v (vertical), hv | flip=h |
trim |
Rogne automatiquement les bandes vides des bords | trim=true |
Filigrane & texte
| Paramètre | Ce que ça fait | Exemple |
|---|---|---|
watermark |
Adresse d'une image de logo à incruster | watermark=https://…/logo.png |
wm_pos |
Position : tl · tr · bl · br · center (défaut br) | wm_pos=br |
wm_opacity |
Transparence du filigrane 0–100 (défaut 50) | wm_opacity=40 |
wm_size |
Largeur du filigrane en % de l'image (défaut 20) | wm_size=25 |
text |
Texte incrusté (200 caractères max) | text=©+mon+studio |
text_color |
Couleur hex du texte (défaut ffffff) | text_color=5b8cff |
text_size |
Taille du texte en pixels (défaut 32) | text_size=48 |
text_pos |
Position du texte (défaut br) | text_pos=center |
Presets & cas particuliers
| Paramètre | Ce que ça fait | Exemple |
|---|---|---|
preset |
Une recette enregistrée, rappelée par un mot — voir la liste ci-dessous. Tes paramètres explicites gagnent toujours | preset=avatar |
pack |
pack=favicon génère toutes les tailles d'icône d'un site dans un zip : ico multi-tailles, png 16→512, apple-touch-icon, manifest, snippet | pack=favicon |
page |
La page d'un PDF à rasteriser en image | page=3 |
frame |
L'image d'un GIF animé (0 = première) | frame=12 |
Les presets embarqués
| Preset | Recette appliquée |
|---|---|
preset=avatar |
w=256&h=256&fit=cover&radius=max&output=webp&strip=true |
preset=produit |
w=1200&h=1200&fit=contain&bg=ffffff&output=auto&optimized=true |
preset=scan |
conversion=scan&output=jpg&q=80&max=2000 |
preset=social |
w=1200&h=630&fit=cover&output=jpg&q=85&strip=true |
preset=compress |
maxsize=2mb&optimized=true&strip=true |
preset=thumbnail |
w=320&h=320&fit=cover&output=webp&q=75&strip=true |
Cache, limites & bonnes pratiques
Le lien est la recette. La même adresse produit exactement la même image : les résultats sont mis en cache longuement (Cache-Control: immutable) et servis sans recalcul. Change un paramètre, l'image change partout où le lien est collé.
Fair use. L'offre ouverte est gratuite et sans compte, avec une limite de débit par IP et des bornes de sécurité : 30 Mo et 50 mégapixels maximum en entrée, sources http(s) publiques uniquement (les adresses internes sont bloquées). En-têtes utiles dans la réponse : X-Imgk-Cache (HIT/MISS), X-Imgk-Bytes et X-Imgk-Source-Bytes.
Erreurs. Toute erreur sort en JSON clair avec le bon code HTTP : {"error": "maxsize attend un poids comme 200kb ou 2mb."}
Self-host. imgk est open source : déploie ta propre instance depuis le repo GitHub pour un contrôle total, une allowlist de domaines sources (IMGK_ALLOWED_HOSTS) ou un usage intensif.
Plus simple à la souris ?
Le studio règle tout en cliquant et affiche l'adresse correspondante en direct.
Ouvrir le studio