next/image — optimisation d'image

Redimensionnement + conversion de format (WebP) servis via /_bext/image?url=…&w=…&q=…. L'endpoint lit depuis public/, redimensionne via Lanczos3, et réencode en WebP lorsque le navigateur l'annonce via Accept.

Astuce
Les réponses sont émises avec cache-control: max-age=31536000, immutable — la même URL produit toujours le même octet, donc le navigateur ne refait jamais la requête. Changez les dimensions (w=) pour invalider le cache naturellement, sans purge manuelle.

Trois tailles depuis la même source

La source /sample-photo.jpg fait 1600×900. Chaque image ci-dessous est une requête /_bext/image distincte — ouvrez le panneau réseau pour voir les réponses WebP.

200px wide

w=200, q=70

400px wide

w=400, q=80

src/app/examples/image/page.tsxTSX
// next/image migration shim — URL → /_bext/image
import Image from "@bext-stack/framework/next/image";
<Image src="/sample-photo.jpg" width={800} height={450} alt="..." />
// → <img src="/_bext/image?url=%2Fsample-photo.jpg&w=800" ... />

// Or call the endpoint directly:
<img
  src="/_bext/image?url=/sample-photo.jpg&w=400&q=80"
  alt="resized inline"
  loading="lazy"
/>