diff --git a/src/content/docs/fr/guides/images.mdx b/src/content/docs/fr/guides/images.mdx
index 99b9476a7a8b5..6325cc292d847 100644
--- a/src/content/docs/fr/guides/images.mdx
+++ b/src/content/docs/fr/guides/images.mdx
@@ -245,7 +245,7 @@ import myImage from '../assets/my_image.png'; // Image est en 1600x900
/>
```
-Le composant `` accepte [plusieurs propriétés de composant](/fr/reference/modules/astro-assets/#propriétés-dimage) ainsi que tous les attributs acceptés par la balise HTML ``.
+Le composant `` accepte [plusieurs propriétés de composant](/fr/reference/modules/astro-assets/#image-) ainsi que tous les attributs acceptés par la balise HTML ``.
L'exemple suivant fournit une classe (`class`) au composant Image qui s'appliquera à l'élément final ``.
@@ -313,7 +313,7 @@ import myImage from '../assets/my_image.png'; // Image est de 1600x900
```
-Consultez le détail des [propriétés du composant ``](/fr/reference/modules/astro-assets/#propriétés-de-picture) dans la référence `astro:assets`.
+Consultez le détail des [propriétés du composant ``](/fr/reference/modules/astro-assets/#picture-) dans la référence `astro:assets`.
### Comportement des images adaptatives
@@ -490,7 +490,7 @@ La [syntaxe de modèle Astro](/fr/reference/astro-syntax/) prend également en c
Les images locales doivent être importées à partir du chemin relatif du fichier `.astro` existant, ou vous pouvez configurer et utiliser un [alias d'importation](/fr/guides/imports/#alias). Vous pouvez ensuite accéder à la source de l'image et aux autres propriétés à utiliser dans la balise ``.
-Les ressources d'image importées correspondent à la signature suivante :
+Les ressources d'images importées correspondent au type [`ImageMetadata`](/fr/reference/modules/astro-assets/#imagemetadata-1) et possèdent la signature suivante :
```ts
interface ImageMetadata {
diff --git a/src/content/docs/fr/guides/migrate-to-astro/from-gatsby.mdx b/src/content/docs/fr/guides/migrate-to-astro/from-gatsby.mdx
index 88cc131a36fc6..4ffe959e29a30 100644
--- a/src/content/docs/fr/guides/migrate-to-astro/from-gatsby.mdx
+++ b/src/content/docs/fr/guides/migrate-to-astro/from-gatsby.mdx
@@ -333,7 +333,7 @@ import rocket from '../assets/rocket.png';
```
-Le composant `` d'Astro fonctionne uniquement dans les fichiers `.astro` et `.mdx`. Consultez la [liste complète de ses attributs de composants](/fr/reference/modules/astro-assets/#propriétés-dimage) et notez que plusieurs différeront des attributs de Gatsby.
+Le composant `` d'Astro fonctionne uniquement dans les fichiers `.astro` et `.mdx`. Consultez la [liste complète de ses attributs de composants](/fr/reference/modules/astro-assets/#image-) et notez que plusieurs différeront des attributs de Gatsby.
Pour continuer à utiliser des [images dans les fichiers Markdown (`.md`)](/fr/guides/images/#images-dans-les-fichiers-markdown) en utilisant la syntaxe Markdown standard (`![]()`), vous devrez peut-être mettre à jour le lien. L'utilisation directe de la balise HTML `` n'est pas prise en charge dans les fichiers `.md` pour les images locales et doit être convertie en syntaxe Markdown.
diff --git a/src/content/docs/fr/guides/migrate-to-astro/from-nextjs.mdx b/src/content/docs/fr/guides/migrate-to-astro/from-nextjs.mdx
index 31973dab633e9..e4c7e75433a6d 100644
--- a/src/content/docs/fr/guides/migrate-to-astro/from-nextjs.mdx
+++ b/src/content/docs/fr/guides/migrate-to-astro/from-nextjs.mdx
@@ -426,7 +426,7 @@ En savoir plus sur les [styles dans Astro](/fr/guides/styling/).
Convertissez tous les composants Next `` en [composant d'image propre à Astro](/fr/guides/images/) dans les fichiers `.astro` ou `.mdx`, ou en code [HTML/JSX standard avec la balise ``](/fr/guides/images/#images-dans-les-composants-de-framework-ui) selon les besoins dans vos composants React.
-Le composant `` d'Astro fonctionne uniquement dans les fichiers `.astro` et `.mdx`. Consultez la [liste complète de ses attributs de composants](/fr/reference/modules/astro-assets/#propriétés-dimage) et notez que plusieurs différeront des attributs de Next.
+Le composant `` d'Astro fonctionne uniquement dans les fichiers `.astro` et `.mdx`. Consultez la [liste complète de ses attributs de composants](/fr/reference/modules/astro-assets/#image-) et notez que plusieurs différeront des attributs de Next.
```astro title="src/pages/index.astro"
---
diff --git a/src/content/docs/fr/guides/migrate-to-astro/from-nuxtjs.mdx b/src/content/docs/fr/guides/migrate-to-astro/from-nuxtjs.mdx
index eda8e07beb282..3a7945ece9ee5 100644
--- a/src/content/docs/fr/guides/migrate-to-astro/from-nuxtjs.mdx
+++ b/src/content/docs/fr/guides/migrate-to-astro/from-nuxtjs.mdx
@@ -491,7 +491,7 @@ En savoir plus sur [les styles dans Astro](/fr/guides/styling/).
Convertissez tous les [composants `` ou `` de Nuxt](https://image.nuxt.com/usage/nuxt-img) en [composant d'image propre à Astro](/fr/guides/images/) dans les fichiers `.astro` ou `.mdx` ou en code [HTML standard avec la balise ``](/fr/guides/images/#images-dans-les-composants-de-framework-ui) ou la balise `` selon le cas dans vos composants Vue.
-Le composant `` d'Astro fonctionne uniquement dans les fichiers `.astro` et `.mdx`. Consultez la [liste complète de ses attributs de composants](/fr/reference/modules/astro-assets/#propriétés-dimage) et notez que plusieurs différeront des attributs de Nuxt.
+Le composant `` d'Astro fonctionne uniquement dans les fichiers `.astro` et `.mdx`. Consultez la [liste complète de ses attributs de composants](/fr/reference/modules/astro-assets/#image-) et notez que plusieurs différeront des attributs de Nuxt.
```astro title="src/pages/index.astro"
---
diff --git a/src/content/docs/fr/guides/upgrade-to/v3.mdx b/src/content/docs/fr/guides/upgrade-to/v3.mdx
index 7595fb06ca2d3..dc4ac07efdafb 100644
--- a/src/content/docs/fr/guides/upgrade-to/v3.mdx
+++ b/src/content/docs/fr/guides/upgrade-to/v3.mdx
@@ -829,7 +829,7 @@ Si vous utilisiez l'intégration d'images dans Astro v2.x, procédez comme suit
Modifiez toutes les instructions `import` de `@astrojs/image/components` en `astro:assets` afin d'utiliser le nouveau composant `` intégré.
- Supprimez tous les attributs de composant qui ne sont pas des [propriétés d'éléments d'image actuellement prises en charge](/fr/reference/modules/astro-assets/#propriétés-dimage).
+ Supprimez tous les attributs de composant qui ne sont pas des [propriétés d'éléments d'image actuellement prises en charge](/fr/reference/modules/astro-assets/#image-).
Par exemple, `aspectRatio` n'est plus pris en charge, car il est désormais automatiquement déduit des attributs `width` et `height`.
diff --git a/src/content/docs/fr/reference/image-service-reference.mdx b/src/content/docs/fr/reference/image-service-reference.mdx
index 1b0424593d1e7..0a7a40484f6b0 100644
--- a/src/content/docs/fr/reference/image-service-reference.mdx
+++ b/src/content/docs/fr/reference/image-service-reference.mdx
@@ -129,7 +129,7 @@ En mode développement et lors de l'utilisation d'un adaptateur pour effectuer l
#### getConfiguredImageService & imageConfig
-Si vous implémentez votre propre point de terminaison en tant que point de terminaison Astro, vous pouvez utiliser `getConfiguredImageService` et `imageConfig` pour appeler les méthodes `parseURL` et `transform` de votre service et fournir la configuration de l'image.
+Si vous implémentez votre propre point de terminaison en tant que point de terminaison Astro, vous pouvez utiliser [`getConfiguredImageService`](/fr/reference/modules/astro-assets/#getconfiguredimageservice) et [`imageConfig`](/fr/reference/modules/astro-assets/#imageconfig) pour appeler les méthodes `parseURL` et `transform` de votre service et fournir la configuration de l'image.
Pour accéder à la configuration du service d'image ([`image.service.config`](/fr/reference/configuration-reference/#imageservice)), vous pouvez utiliser `imageConfig.service.config`.
@@ -162,7 +162,7 @@ export const GET: APIRoute = async ({ request }) => {
@@ -172,30 +172,13 @@ Pour les services locaux, ce hook renvoie l'URL du point de terminaison qui gén
Pour les services externes, ce hook renvoie l'URL finale de l'image.
-Pour les deux types de services, les `options` sont les propriétés passées par l'utilisateur comme attributs du composant `` ou comme options de `getImage()`. Elles sont du type suivant :
-
-```ts
-export type ImageTransform = {
- // Images importées par l'ESM | chemins d'accès aux images distantes/publiques
- src: ImageMetadata | string;
- width?: number | undefined;
- height?: number | undefined;
- widths?: number[] | undefined;
- densities?: (number | `${number}x`)[] | undefined;
- quality?: ImageQuality | undefined;
- format?: OutputFormat | undefined;
- fit?: ImageFit | undefined;
- position?: string | undefined;
- [key: string]: any;
-};
-```
-
+Pour les deux types de services, les `options` sont les propriétés passées par l'utilisateur comme attributs du composant `` ou comme options de `getImage()`.
### `parseURL()`
@@ -310,540 +293,3 @@ Les utilisateurs pourront alors bénéficier de la saisie semi-automatique et de
// ^^^^^^^^^^
// Type 'string' is not assignable to type 'number | undefined'.
```
-
-## Utilitaires
-
-Astro propose plusieurs fonctions d'assistance permettant de développer un service d'images personnalisé. Ces utilitaires peuvent être importés depuis `astro/assets/utils` :
-
-```ts
-import {
- isRemoteAllowed,
- matchHostname,
- matchPathname,
- matchPattern,
- matchPort,
- matchProtocol,
- isESMImportedImage,
- isRemoteImage,
- resolveSrc,
- imageMetadata,
- emitESMImage,
- emitImageMetadata,
- getOrigQueryParams,
- inferRemoteSize,
- propsToFilename,
- hashTransform
-} from "astro/assets/utils";
-```
-
-### `isRemoteAllowed()`
-
-
-
-Fait correspondre le nom d'hôte d'une URL donnée à un nom d'hôte spécifié, avec prise en charge facultative des modèles génériques.
-
-```ts
-import { matchHostname } from 'astro/assets/utils';
-
-const testURL = new URL('https://sub.example.com/path/to/resource');
-
-// Exemple d'utilisation de matchHostname
-const hostnameToMatch = 'example.com';
-
-// Correspondance sans caractère générique
-const isMatchWithoutWildcard = matchHostname(testURL, hostnameToMatch);
-console.log(`Le nom d'hôte correspond-il sans caractère générique ? ${isMatchWithoutWildcard}`); // Sortie : false
-
-// Correspondance avec un caractère générique
-const isMatchWithWildcard = matchHostname(testURL, hostnameToMatch, true);
-console.log(`Le nom d'hôte correspond-il avec un caractère générique ? ${isMatchWithWildcard}`); // Sortie : true
-```
-
-### `matchPathname()`
-
-
-
-Fait correspondre le chemin d'accès d'une URL donnée à un modèle spécifié, avec prise en charge facultative des caractères génériques.
-
-```ts
-import { matchPathname } from 'astro/assets/utils';
-
-const testURL = new URL('https://example.com/images/photo.jpg');
-
-// Exemple de chemin d'accès à faire correspondre
-const pathnameToMatch = '/images/photo.jpg';
-
-// Correspondance sans caractère générique
-const isMatchWithoutWildcard = matchPathname(testURL, pathnameToMatch);
-console.log(`Le nom du chemin correspond-il sans caractère générique ? ${isMatchWithoutWildcard}`); // Sortie : true
-
-// Correspondance avec un caractère générique
-const wildcardPathname = '/images/*';
-const isMatchWithWildcard = matchPathname(testURL, wildcardPathname, true);
-console.log(`Le nom du chemin correspond-il avec un caractère générique ? ${isMatchWithWildcard}`); // Sortie : true
-```
-
-### `matchPattern()`
-
-
-
-Évalue si une URL donnée correspond au modèle distant spécifié en fonction du protocole, du nom d'hôte, du port et du chemin d'accès.
-
-```ts
-import { matchPattern } from 'astro/assets/utils';
-
-const testURL = new URL('https://images.example.com/photos/test.jpg');
-
-// Définir un modèle distant pour correspondre à l'URL
-const remotePattern = {
- protocol: 'https',
- hostname: 'images.example.com',
- pathname: '/photos/**', // Caractère générique pour autoriser tous les fichiers sous /photos/
- port: '', // Facultatif : faites correspondre n'importe quel port ou laissez vide par défaut
-};
-
-// Vérifiez si l'URL correspond au modèle distant
-const isPatternMatched = matchPattern(testURL, remotePattern);
-
-console.log(`L'URL correspond-elle au modèle distant ? ${isPatternMatched}`); // Sortie : true
-```
-
-### `matchPort()`
-
-
-
-Vérifie si le port de l'URL donnée correspond au port spécifié. Si aucun port n'est fourni, renvoie `true`.
-
-```ts
-import { matchPort } from 'astro/assets/utils';
-
-const testURL1 = new URL('https://example.com:8080/resource');
-const testURL2 = new URL('https://example.com/resource');
-
-// Exemple d'utilisation de matchPort
-const portToMatch = '8080';
-
-// Faire correspondre une URL avec un port spécifié
-const isPortMatch1 = matchPort(testURL1, portToMatch);
-console.log(`Le port correspond-il ? ${isPortMatch1}`); // Sortie : true
-
-// Faire correspondre une URL sans port spécifié (le port par défaut sera supposé)
-const isPortMatch2 = matchPort(testURL2, portToMatch);
-console.log(`Le port correspond-il ? ${isPortMatch2}`); // Sortie : false
-
-// Vérifier une URL sans fournir explicitement de port (la valeur par défaut est true si le port n'est pas défini)
-const isPortMatch3 = matchPort(testURL1);
-console.log(`Le port correspond-il (aucun port spécifié) ? ${isPortMatch3}`); // Sortie : true
-```
-
-### `matchProtocol()`
-
-
-
-Compare le protocole de l'URL fournie avec un protocole spécifié.
-
-```ts
-import { matchProtocol } from 'astro/assets/utils';
-
-const testURL1 = new URL('https://example.com/resource');
-const testURL2 = new URL('http://example.com/resource');
-
-// Exemple d'utilisation de matchProtocol
-const protocolToMatch = 'https';
-
-// Faire correspondre une URL avec le bon protocole
-const isProtocolMatch1 = matchProtocol(testURL1, protocolToMatch);
-console.log(`Le protocole correspond-il pour testURL1 ? ${isProtocolMatch1}`); // Sortie : true
-
-// Faire correspondre une URL avec un protocole incorrect
-const isProtocolMatch2 = matchProtocol(testURL2, protocolToMatch);
-console.log(`Le protocole correspond-il pour testURL2? ${isProtocolMatch2}`); // Sortie : false
-
-// Faire correspondre une URL sans fournir explicitement de protocole (la valeur par défaut est true si le protocole n'est pas défini)
-const isProtocolMatch3 = matchProtocol(testURL1);
-console.log(`Le protocole correspond-il (aucun protocole spécifié) ? ${isProtocolMatch3}`); // Sortie : true
-```
-
-### `isESMImportedImage()`
-
-
-
-Renvoie la source de l'image. Cette fonction garantit que si `src` est une promesse (par exemple, une importation dynamique (`import()`)), elle est attendue et la bonne `src` est extraite. Si `src` est déjà une valeur résolue, elle est renvoyée telle quelle.
-
-```ts
-import { resolveSrc } from 'astro/assets/utils';
-import imageLocale from "./images/photo.jpg";
-
-const resolvedLocal = await resolveSrc(imageLocale);
-// sera `{ src: '/images/photo.jpg', width: 800, height: 600, format: 'jpg' }`
-
-const resolvedRemote = await resolveSrc("https://example.com/img-distante.jpg");
-// sera `"https://example.com/img-distante.jpg"`
-
-const resolvedDynamic = await resolveSrc(import("./images/image-dynamique.jpg"))
-// sera `{ src: '/images/image-dynamique.jpg', width: 800, height: 600, format: 'jpg' }`
-```
-
-
-### `imageMetadata()`
-
-
-
-
-Traite un fichier image et émet ses métadonnées et éventuellement son contenu. En mode compilation, la fonction utilise `fileEmitter` pour générer une référence de ressource. En mode développement, elle résout l'URL d'un fichier local avec des paramètres de requête pour les métadonnées.
-
-```ts
-
-import { emitESMImage } from 'astro/assets/utils';
-
-const imageId = '/images/photo.jpg';
-const unusedWatchMode = false; // Dépréciée, inutilisé
-const unusedExperimentalSvgEnabled = false; // Définissez sur `true` uniquement si vous utilisez SVG et souhaitez que les données du fichier soient intégrées
-
-try {
- const result = await emitESMImage(imageId, unusedWatchMode, unusedExperimentalSvgEnabled);
- if (result) {
- console.log("Métadonnées d'image avec contenu :", result);
- // Exemple de sortie :
- // {
- // width: 800,
- // height: 600,
- // format: 'jpg',
- // contents: Uint8Array([...])
- // }
- } else {
- console.log("Aucune métadonnée n'a été émise pour cette image.");
- }
-} catch (error) {
- console.error("Échec de l'émission de l'image ESM :", error);
-}
-
-```
-
-### `emitImageMetadata()`
-
-
-
-
-Traite un fichier image et émet ses métadonnées et éventuellement son contenu. En mode compilation, la fonction utilise `fileEmitter` pour générer une référence de ressource. En mode développement, elle résout l'URL d'un fichier local avec des paramètres de requête pour les métadonnées.
-
-```ts
-
-import { emitImageMetadata } from 'astro/assets/utils';
-
-const imageId = '/images/photo.jpg';
-
-try {
- const result = await emitImageMetadata(imageId);
- if (result) {
- console.log("Métadonnées d'image avec contenu :", result);
- // Exemple de sortie :
- // {
- // width: 800,
- // height: 600,
- // format: 'jpg',
- // contents: Uint8Array([...])
- // }
- } else {
- console.log("Aucune métadonnée n'a été émise pour cette image.");
- }
-} catch (error) {
- console.error("Échec de l'émission de l'image ESM :", error);
-}
-
-```
-
-### `getOrigQueryParams()`
-
-
-
-
-Récupère la largeur (`width`), la hauteur (`height`) et le `format` d'une image à partir d'un objet [`URLSearchParams`](https://developer.mozilla.org/fr/docs/Web/API/URLSearchParams). Si l'un de ces paramètres est manquant ou non valide, la fonction renvoie `undefined`.
-
-```ts
-
-import { getOrigQueryParams } from 'astro/assets/utils';
-
-const url = new URL('https://example.com/image.jpg?width=800&height=600&format=jpg');
-const queryParams = url.searchParams;
-
-// Extraire les paramètres de requête d'origine
-const origParams = getOrigQueryParams(queryParams);
-
-if (origParams) {
- console.log("Paramètres de requête d'origine :", origParams);
- // Exemple de sortie :
- // {
- // width: 800,
- // height: 600,
- // format: 'jpg'
- // }
-} else {
- console.log("Échec de l'extraction des paramètres de requête d'origine.");
-}
-```
-
-### `inferRemoteSize()`
-
-
- **Type :** `(url: string) => Promise>`
-
-
-
-Déduit les dimensions d'une image distante en diffusant ses données et en les analysant progressivement jusqu'à ce que suffisamment de métadonnées soient disponibles.
-
-```ts
-
-import { inferRemoteSize } from 'astro/assets/utils';
-
-async function getRemoteImageSize() {
- const remoteImageUrl = 'https://example.com/image.jpg';
-
- try {
- // Déduire la taille de l'image distante à partir de l'URL
- const imageSize = await inferRemoteSize(remoteImageUrl);
-
- console.log("Taille de l'image distante déduite :", imageSize);
- // Exemple de sortie :
- // {
- // width: 1920,
- // height: 1080,
- // format: 'jpg'
- // }
- } catch (error) {
- console.error("Impossible de déduire la taille de l'image distante :", error);
- }
-}
-
-await getRemoteImageSize();
-```
-
-### `propsToFilename()`
-
-
-
-
-Génère un nom de fichier formaté pour une image en fonction de son chemin source, de ses propriétés de transformation et d'un hachage unique.
-
-Le nom de fichier formaté suit cette structure :
-
-`/_`
-
-- `prefixDirname` : Si l'image est une image importée ESM, il s'agit du nom du répertoire du chemin du fichier d'origine ; sinon, ce sera une chaîne de caractères vide.
-- `baseFilename` : Le nom de base du fichier ou un nom court haché si le fichier est un URI `data:`.
-- `hash` : Une chaîne de hachage unique générée pour distinguer le fichier transformé.
-- `outputExtension` : L'extension du fichier de sortie souhaitée dérivée de `transform.format` ou de l'extension du fichier d'origine.
-
-```ts
-import { propsToFilename } from 'astro/assets/utils';
-
-function generateTransformedFilename() {
- const filePath = '/images/photo.jpg';
- const transform = {
- format: 'png',
- src: '/images/photo.jpg'
- };
- const hash = 'abcd1234';
-
- // Générer le nom de fichier transformé en fonction du chemin du fichier, de la transformation et du hachage
- const filename = propsToFilename(filePath, transform, hash);
-
- console.log('Nom de fichier transformé généré :', filename);
- // Exemple de sortie : '/images/photo_abcd1234.png'
-}
-
-generateTransformedFilename();
-```
-
-### `hashTransform()`
-
-
-
-Transforme l'objet `transform` fourni en une chaîne de hachage basée sur les propriétés sélectionnées et le `imageService` spécifié.
-
-```ts
-
-import { hashTransform } from 'astro/assets/utils';
-
-function generateTransformHash() {
- const transform = {
- src: '/images/photo.jpg',
- width: 800,
- height: 600,
- format: 'jpg',
- };
-
- const imageService = 'astroImageService';
- const propertiesToHash = ['width', 'height', 'format'];
-
- // Générer le hachage en fonction de la transformation, du service d'image et des propriétés
- const hash = hashTransform(transform, imageService, propertiesToHash);
-
- console.log('Hachage de transformation généré :', hash);
- // Exemple de sortie : 'd41d8cd98f00b204e9800998ecf8427e'
-}
-
-generateTransformHash();
-```
diff --git a/src/content/docs/fr/reference/modules/astro-assets.mdx b/src/content/docs/fr/reference/modules/astro-assets.mdx
index 4c6f8ed2d93ca..0b8bae7ac7b50 100644
--- a/src/content/docs/fr/reference/modules/astro-assets.mdx
+++ b/src/content/docs/fr/reference/modules/astro-assets.mdx
@@ -5,7 +5,7 @@ sidebar:
i18nReady: true
tableOfContents:
minHeadingLevel: 2
- maxHeadingLevel: 6
+ maxHeadingLevel: 3
---
import Since from '~/components/Since.astro';
import ReadMore from '~/components/ReadMore.astro';
@@ -16,13 +16,17 @@ Astro fournit des composants intégrés et des fonctions d'aide pour optimiser e
## Importations depuis `astro:assets`
+Les utilitaires suivants sont importés depuis le module virtuel des ressources :
+
```js
import {
Image,
Picture,
getImage,
inferRemoteSize,
- } from 'astro:assets';
+ getConfiguredImageService,
+ imageConfig,
+} from 'astro:assets';
```
### ``
@@ -55,15 +59,13 @@ import monImage from "../assets/mon_image.png"; // Image a une résolution de 16
/>
```
-#### Propriétés d'Image
-
Le composant `` accepte les propriétés listées ci-dessous et les [propriétés d'image adaptatives](#propriétés-des-images-adaptatives) en plus de toutes les propriétés acceptées par la balise HTML ``.
-##### src (obligatoire)
+#### `src` (obligatoire)
Le format de la valeur `src` de votre fichier image dépend de l'emplacement de votre fichier image :
@@ -106,7 +108,7 @@ Le format de la valeur `src` de votre fichier image dépend de l'emplacement de
/>
```
-##### alt (obligatoire)
+#### `alt` (obligatoire)
@@ -117,11 +119,11 @@ Utilisez l'attribut `alt` requis pour fournir un [texte alternatif descriptif](h
Si une image est simplement décorative (c'est-à-dire qu'elle ne contribue pas à la compréhension de la page), définissez `alt=""` pour que les lecteurs d'écran et autres technologies d'assistance sachent qu'il faut ignorer l'image.
-##### width et height (obligatoires pour les images dans `public/`)
+#### `width` et `height` (obligatoires pour les images dans `public/`)
Ces propriétés définissent les dimensions à utiliser pour l'image.
@@ -132,7 +134,7 @@ Lorsque vous utilisez des images dans leur rapport hauteur/largeur d'origine, `w
Cependant, ces deux propriétés sont requises pour les images stockées dans votre dossier `public/` car Astro n'est pas en mesure d'analyser ces fichiers.
-##### densities
+#### `densities`
@@ -195,7 +197,7 @@ Ne fournissez pas de valeur pour `densities` lorsque vous utilisez cette valeur.
Les largeurs supérieures à l'image d'origine seront ignorées pour éviter de mettre à l'échelle l'image.
-```astro
+```astro title="src/components/MonComposant.astro"
---
import { Image } from 'astro:assets';
import monImage from '../assets/mon_image.png'; // La résolution de l'image est de 1600x900
@@ -232,7 +234,7 @@ import monImage from '../assets/mon_image.png'; // La résolution de l'image est
/>
```
-##### sizes
+#### `sizes`
@@ -247,18 +249,18 @@ Les attributs `widths` et `sizes` seront automatiquement générés pour les ima
L'attribut `sizes` généré pour les images contraintes (`constrained`) et pleine largeur (`full-width`) suppose que l'image s'affiche presque sur toute la largeur de l'écran lorsque la fenêtre d'affichage est plus petite que la largeur de l'image. Si la différence est significative (par exemple, si l'image est affichée sur plusieurs colonnes sur un petit écran), vous devrez peut-être ajuster manuellement l'attribut `sizes` pour obtenir de meilleurs résultats.
-##### format
+#### `format`
Vous pouvez éventuellement indiquer le [type de fichier image](https://developer.mozilla.org/fr/docs/Web/Media/Formats/Image_types#types_de_fichiers_dimages_communs) de sortie à utiliser.
Par défaut, le composant `` produira un fichier `.webp`.
-##### quality
+#### `quality`
@@ -269,7 +271,7 @@ Par défaut, le composant `` produira un fichier `.webp`.
- un préréglage (`low`, `mid`, `high`, `max`) qui est automatiquement normalisé entre les formats.
- un nombre compris entre `0` et `100` (interprété différemment selon les formats).
-##### inferSize
+#### `inferSize`
@@ -293,7 +295,7 @@ import { Image } from 'astro:assets';
`inferSize` peut récupérer les dimensions d'une [image distante d'un domaine qui n'a pas été autorisé](/fr/guides/images/#autoriser-les-images-distantes), cependant l'image elle-même restera non traitée.
-##### priority
+#### `priority`
@@ -356,29 +358,27 @@ import monImage from "../assets/mon_image.png"; // La résolution de l'image est
```
-#### Propriétés de Picture
+`` accepte toutes les propriétés du [composant ``](#image-), y compris les [propriétés d'image adaptatives](#propriétés-des-images-adaptatives), en plus des suivantes :
-`` accepte toutes les propriétés du [composant ``](#propriétés-dimage), y compris les [propriétés d'image adaptatives](#propriétés-des-images-adaptatives), en plus des suivantes :
-
-##### `formats`
+#### `formats`
Un tableau de formats d'image à utiliser pour les balises ``. Les entrées seront ajoutées en tant qu'éléments `` dans l'ordre dans lequel elles sont répertoriées, et cet ordre détermine le format affiché. Pour de meilleures performances, indiquez d'abord le format le plus moderne (par exemple `webp` ou `avif`). Par défaut, ce paramètre est défini sur `['webp']`.
-##### `fallbackFormat`
+#### `fallbackFormat`
Format à utiliser comme valeur de secours pour la balise ``. La valeur par défaut est `.png` pour les images statiques (ou `.jpg` si l'image est au format JPG), `.gif` pour les images animées et `.svg` pour les fichiers SVG.
-##### `pictureAttributes`
+#### `pictureAttributes`
@@ -421,7 +421,7 @@ import monImage from "../mon_image.png"; // La résolution de l'image est de 160
La définition de la propriété [`layout`](#layout) sur un composant [``](#image-) ou [``](#picture-) crée une image adaptative et active des paramètres de propriété supplémentaires.
-```astro title=MonComposant.astro
+```astro title="src/components/MonComposant.astro"
---
import { Image } from 'astro:assets';
import monImage from '../assets/mon_image.png';
@@ -470,7 +470,7 @@ La valeur de `layout` définit également les styles par défaut appliqués à l
Vous pouvez remplacer les styles par défaut `object-fit` et `object-position` en définissant les props [`fit`](#fit) et [`position`](#position) sur le composant `` ou ``.
-##### layout
+##### `layout`
@@ -509,7 +509,7 @@ import monImage from '../assets/mon_image.png';
```
-##### fit
+##### `fit`
@@ -522,7 +522,7 @@ Activée lorsque la propriété [`layout`](#layout) est définie ou configurée.
Les valeurs correspondent à celles de la propriété CSS `object-fit`. La valeur par défaut est `cover` ou la valeur de [`image.objectFit`](/fr/reference/configuration-reference/#imageobjectfit) si elle est définie. Peut être utilisée pour remplacer les styles par défaut de `object-fit`.
-##### position
+##### `position`
@@ -539,7 +539,7 @@ Les valeurs correspondent à celles de la propriété CSS `object-position`. La
:::caution
@@ -548,9 +548,11 @@ Les valeurs correspondent à celles de la propriété CSS `object-position`. La
La fonction `getImage()` est prévue pour générer des images destinées à être utilisées ailleurs que directement en HTML, par exemple dans une [route d'API](/fr/guides/endpoints/#points-de-terminaison-du-serveur-routes-api). Elle vous permet également de créer votre propre composant `` personnalisé.
-`getImage()` prend un objet d'options avec les [mêmes propriétés que le composant Image](#propriétés-dimage) (à l'exception de `alt`).
+Cette fonction prend un objet d'options avec les [mêmes propriétés que le composant Image](#image-) (sauf `alt`) et renvoie un [objet `GetImageResult`](#getimageresult).
-```astro
+L'exemple suivant génère un arrière-plan (`background-image`) au format AVIF pour un élément `` :
+
+```astro title="src/components/ArrierePlan.astro"
---
import { getImage } from "astro:assets";
import myBackground from "../background.png"
@@ -558,41 +560,947 @@ import myBackground from "../background.png"
const optimizedBackground = await getImage({src: myBackground, format: 'avif'})
---
-
+
+
+Une fonction permettant de définir automatiquement la largeur et la hauteur d'origine d'une image distante. Elle peut être utilisée comme alternative à la transmission de la propriété [`inferSize`](#infersize).
+
+```ts
+import { inferRemoteSize } from 'astro:assets';
+const { width, height } = await inferRemoteSize("https://example.com/cat.png");
```
-Elle renvoie un objet avec le type suivant :
+### `getConfiguredImageService()`
+
+
+
+Les [options de configuration pour les images](/fr/reference/configuration-reference/#options-dimages) définies par l'utilisateur et fusionnées avec toutes les valeurs par défaut.
+
+## Types d'`astro:assets`
+
+Les types suivants sont importés depuis le module virtuel des ressources :
```ts
-type GetImageResult = {
- /* Attributs HTML supplémentaires nécessaires au rendu de l'image (largeur, hauteur, style, etc.) */
- attributes: Record;
- /* Paramètres passés validés */
- options: ImageTransform;
- /* Paramètres d'origine transmis */
- rawOptions: ImageTransform;
- /* Chemin d'accès à l'image générée */
- src: string;
- srcSet: {
- /* Valeurs générées pour srcset, chaque entrée a une URL et un descripteur de taille */
- values: SrcSetValue[];
- /* Une valeur prête à être utilisée dans l'attribut `srcset` */
- attribute: string;
- };
+import type {
+ LocalImageProps,
+ RemoteImageProps,
+} from "astro/assets";
+```
+
+### `LocalImageProps`
+
+
+
+Décrit les [propriétés d'une image locale](#image-). Cela garantit que [`src`](#src-obligatoire) correspond à la forme d'une image importée.
+
+Apprenez-en davantage sur les [images importées dans `src/`](/fr/guides/images/#images-dans-src) avec un exemple d'utilisation.
+
+### `RemoteImageProps`
+
+
+
+Décrit les [propriétés d'une image distante](#image-). Cela garantit que lorsque [`inferSize`](#infersize) n'est pas fourni ou est défini sur `false`, les propriétés [`width` et `height`](#width-et-height-obligatoires-pour-les-images-dans-public) sont toutes deux requises.
+
+## Importations depuis `astro/assets`
+
+Les utilitaires suivants sont importés du module standard des ressources :
+
+```ts
+import {
+ baseService,
+ getConfiguredImageService,
+ getImage,
+ isLocalService,
+} from "astro/assets";
+```
+
+### `baseService`
+
+
+
+Le service d'images local intégré qui peut être étendu pour [créer un service d'images personnalisé](/fr/reference/image-service-reference/).
+
+L'exemple suivant réutilise `baseService` pour créer un nouveau service d'images :
+
+```ts title="src/image-service.ts"
+import { baseService } from "astro/assets";
+
+const newImageService = {
+ getURL: baseService.getURL,
+ parseURL: baseService.parseURL,
+ getHTMLAttributes: baseService.getHTMLAttributes,
+ async transform(inputBuffer, transformOptions) {...}
}
```
-### inferRemoteSize()
+### `getConfiguredImageService()`
+
+Voir [`getConfiguredImageService()`](#getconfiguredimageservice) dans `astro:assets`.
+
+### `getImage()`
+
+Une fonction similaire à [`getImage()`](#getimage) de `astro:assets` avec deux arguments requis : un objet `options` avec [les mêmes propriétés que le composant Image](#image-) et un deuxième objet pour la [configuration de l'image](/fr/reference/configuration-reference/#options-dimages).
+
+### `isLocalService()`
+
+
-Une fonction permettant de déduire les dimensions des images distantes. Elle peut être utilisée comme alternative à la transmission de la propriété `inferSize`.
+Vérifie le type d'un service d'image et renvoie `true` lorsqu'il s'agit d'un [service local](#localimageservice).
+
+## Types d'`astro/assets`
+
+Les types suivants sont importés du module standard des ressources :
```ts
-import { inferRemoteSize } from 'astro:assets';
-const {width, height} = await inferRemoteSize("https://example.com/cat.png");
+import type {
+ LocalImageProps,
+ RemoteImageProps,
+} from "astro/assets";
+```
+
+### `LocalImageProps`
+
+Voir [`LocalImageProps`](#localimageprops) dans `astro:assets`.
+
+### `RemoteImageProps`
+
+Voir [`RemoteImageProps`](#remoteimageprops) dans `astro:assets`.
+
+## Importations depuis `astro/assets/utils`
+
+Les fonctions d'assistance suivantes sont importées depuis le répertoire `utils` du module standard des ressources et peuvent être utilisées pour [créer un service d'images](/fr/reference/image-service-reference/) :
+
+```ts
+import {
+ isRemoteAllowed,
+ matchHostname,
+ matchPathname,
+ matchPattern,
+ matchPort,
+ matchProtocol,
+ isESMImportedImage,
+ isRemoteImage,
+ resolveSrc,
+ imageMetadata,
+ emitImageMetadata,
+ getOrigQueryParams,
+ inferRemoteSize,
+ propsToFilename,
+ hashTransform,
+ /* Les éléments suivants sont dépréciés : */
+ emitESMImage,
+} from "astro/assets/utils";
+```
+
+### `isRemoteAllowed()`
+
+
+
+Compare le nom d'hôte d'une URL donnée à un nom d'hôte spécifié, avec prise en charge optionnelle des caractères génériques.
+
+```ts
+import { matchHostname } from 'astro/assets/utils';
+
+const url = new URL('https://sub.example.com/chemin/de/la/ressource');
+
+matchHostname(url, 'example.com'); // Sortie : `false`
+matchHostname(url, 'example.com', true); // Sortie : `true`
+```
+
+### `matchPathname()`
+
+
+
+Évalue si une URL donnée correspond au modèle distant spécifié en fonction du protocole, du nom d'hôte, du port et du chemin d'accès.
+
+```ts
+import { matchPattern } from 'astro/assets/utils';
+
+const url = new URL('https://images.example.com/photos/test.jpg');
+const remotePattern = {
+ protocol: 'https',
+ hostname: 'images.example.com',
+ pathname: '/photos/**', // Autoriser tous les fichiers sous /photos/
+};
+
+matchPattern(url, remotePattern); // Sortie : `true`
+```
+
+### `matchPort()`
+
+
+
+Vérifie si le port de l'URL donnée correspond au port spécifié. Si aucun port n'est fourni, renvoie `true`.
+
+```ts
+import { matchPort } from 'astro/assets/utils';
+
+const urlWithPort = new URL('https://example.com:8080/resource');
+const urlWithoutPort = new URL('https://example.com/resource');
+
+matchPort(urlWithPort, '8080'); // Sortie : `true`
+matchPort(urlWithoutPort, '8080'); // Sortie : `false`
+```
+
+### `matchProtocol()`
+
+
+
+Renvoie la source de l'image. Cette fonction garantit que si `src` est une promesse (par exemple, une importation dynamique (`import()`)), elle est attendue et que la valeur correcte de `src` est extraite. Si `src` est déjà une valeur résolue, elle est renvoyée telle quelle.
+
+```ts
+import { resolveSrc } from 'astro/assets/utils';
+import localImage from "./images/photo.jpg";
+
+const resolvedLocal = await resolveSrc(localImage);
+// Exemple de valeur : `{ src: '/@fs/home/nom-utilisateur/dev/projet-astro/src/images/photo.jpg', width: 800, height: 600, format: 'jpg' }`
+
+const resolvedRemote = await resolveSrc("https://example.com/img-distante.jpg");
+// Value: `"https://example.com/img-distante.jpg"`
+
+const resolvedDynamic = await resolveSrc(import("./images/image-dynamique.jpg"))
+// Exemple de valeur : `{ src: '/@fs/home/nom-utilisateur/dev/projet-astro/src/images/image-dynamique.jpg', width: 800, height: 600, format: 'jpg' }`
+```
+
+### `imageMetadata()`
+
+
+
+Traite un fichier image et émet ses métadonnées et éventuellement son contenu. En mode compilation, la fonction utilise `fileEmitter` pour générer une référence de ressource. En mode développement, cela se résout en une URL de fichier local avec des paramètres de requête pour les métadonnées.
+
+```ts
+import { emitImageMetadata } from 'astro/assets/utils';
+
+const imageId = '/images/photo.jpg';
+const metadata = await emitImageMetadata(imageId);
+// Exemple de valeur :
+// {
+// src: '/@fs/home/nom-utilisateur/dev/projet-astro/src/images/photo.jpg?origWidth=800&origHeight=600&origFormat=jpg',
+// width: 800,
+// height: 600,
+// format: 'jpg',
+// contents: Uint8Array([...])
+// }
+```
+
+### `getOrigQueryParams()`
+
+
+
+Récupère la largeur (`width`), la hauteur (`height`) et le `format` d'une image à partir d'un objet [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams). Si l'un de ces paramètres est manquant ou invalide, la fonction renvoie `undefined`.
+
+```ts
+import { getOrigQueryParams } from 'astro/assets/utils';
+
+const url = new URL('https://example.com/image.jpg?width=800&height=600&format=jpg');
+const origParams = getOrigQueryParams(url.searchParams);
+// Exemple de valeur :
+// {
+// width: 800,
+// height: 600,
+// format: 'jpg'
+// }
+```
+
+### `inferRemoteSize()`
+
+
+
+Déduit les dimensions d'une image distante en diffusant ses données et en les analysant progressivement jusqu'à ce que suffisamment de métadonnées soient disponibles.
+
+```ts
+import { inferRemoteSize } from 'astro/assets/utils';
+
+const remoteImageUrl = 'https://example.com/image.jpg';
+const imageSize = await inferRemoteSize(remoteImageUrl);
+// Exemple de valeur :
+// {
+// width: 1920,
+// height: 1080,
+// format: 'jpg'
+// }
+```
+
+### `propsToFilename()`
+
+
+
+Génère un nom de fichier formaté pour une image en fonction de son chemin source, de ses propriétés de transformation et d'un hachage unique.
+
+Le nom de fichier formaté suit cette structure :
+
+`/_`
+
+- `prefixDirname` : Si l'image est une image importée ESM, il s'agit du nom du répertoire du chemin du fichier d'origine ; sinon, ce sera une chaîne de caractères vide.
+- `baseFilename` : Le nom de base du fichier ou un nom court haché si le fichier est un URI `data:`.
+- `hash` : Une chaîne de hachage unique générée pour distinguer le fichier transformé.
+- `outputExtension` : L'extension du fichier de sortie souhaitée dérivée de `transform.format` ou de l'extension du fichier d'origine.
+
+```ts
+import { propsToFilename } from 'astro/assets/utils';
+
+const filePath = '/images/photo.jpg';
+const transform = { format: 'png', src: filePath };
+const hash = 'abcd1234';
+
+const filename = propsToFilename(filePath, transform, hash);
+// Exemple de valeur : '/images/photo_abcd1234.png'
+```
+
+### `hashTransform()`
+
+
+
+
+Traite un fichier image et émet ses métadonnées et, éventuellement, son contenu. En mode compilation, la fonction utilise `fileEmitter` pour générer une référence de ressource. En mode développement, cela se résout en une URL de fichier local avec des paramètres de requête pour les métadonnées.
+
+```ts
+import { emitESMImage } from 'astro/assets/utils';
+
+const imageId = '/images/photo.jpg';
+const unusedWatchMode = false; // Déprécié, inutilisé
+const unusedExperimentalSvgEnabled = false; // Définissez cette valeur sur `true` uniquement si vous utilisez SVG et souhaitez que les données du fichier soient intégrées.
+const image = await emitESMImage(imageId, unusedWatchMode, unusedExperimentalSvgEnabled);
+// Exemple de valeur :
+// {
+// src: '/@fs/home/nom-utilisateur/dev/projet-astro/src/images/photo.jpg?origWidth=800&origHeight=600&origFormat=jpg',
+// width: 800,
+// height: 600,
+// format: 'jpg',
+// contents: Uint8Array([...])
+// }
+```
+
+## Types d'`astro`
+
+```ts
+import type {
+ GetImageResult,
+ ImageTransform,
+ UnresolvedImageTransform,
+ ImageMetadata,
+ ImageInputFormat,
+ ImageOutputFormat,
+ ImageQuality,
+ ImageQualityPreset,
+ RemotePattern,
+ ImageService,
+ ExternalImageService,
+ LocalImageService,
+ ImageServiceConfig,
+} from "astro";
```
+
+### `GetImageResult`
+
+
+
+**Type :** `object`
+
+
+
+Décrit le résultat de la transformation après l'appel à [`getImage()`](/fr/reference/modules/astro-assets/#getimage).
+
+#### `attributes`
+
+
+
+**Type :** `Record`
+
+
+Définit les attributs HTML supplémentaires nécessaires au rendu de l'image (par exemple, largeur, hauteur, style).
+
+#### `options`
+
+
+
+Un tableau de valeurs générées où chaque entrée comprend une URL et un descripteur de taille. Celui-ci peut être utilisé pour générer manuellement la valeur de l'attribut `srcset`.
+
+##### `attribute`
+
+
+
+**Type :** `string`
+
+
+Une valeur prête à être utilisée dans l'attribut `srcset`.
+
+### `ImageTransform`
+
+
+
+**Type :** `object`
+
+
+Définit les options acceptées par le service de transformation d'images. Ceci contient une propriété `src` obligatoire, des propriétés prédéfinies facultatives et toutes les propriétés supplémentaires requises par le service d'images :
+
+#### `src`
+
+
+
+Définit le chemin d'accès à une image locale dans le répertoire `public`, l'URL d'une image distante ou les données d'une image importée.
+
+#### `width`
+
+
+
+**Type :** `number | undefined`
+
+
+La largeur de l'image.
+
+#### `height`
+
+
+
+**Type :** `number | undefined`
+
+
+La hauteur de l'image.
+
+#### `widths`
+
+
+
+**Type :** `number[] | undefined`
+
+
+
+Une liste de largeurs à générer pour l'image.
+
+#### `densities`
+
+
+
+Définit une liste de valeurs autorisées pour la propriété CSS `object-fit`, extensible avec n'importe quelle chaîne de caractères.
+
+#### `position`
+
+
+
+**Type :** `string | undefined`
+
+
+
+Contrôle la valeur de la propriété CSS `object-position`.
+
+### `UnresolvedImageTransform`
+
+
+
+Représente une image avec des options de transformation. Ceci contient les mêmes propriétés que le type [`ImageTransform`](#imagetransform) avec un type `src` différent et une propriété `inferSize` supplémentaire.
+
+#### `src`
+
+
+
+Le chemin d'accès à une image importée ou située dans le répertoire `public`, ou l'URL d'une image distante.
+
+#### `inferSize`
+
+
+
+**Type :** `boolean`
+
+
+Détermine si la largeur et la hauteur de l'image doivent être déduites.
+
+Voir aussi l'attribut [`inferSize`](/fr/reference/modules/astro-assets/#infersize) disponible pour ``.
+
+### `ImageMetadata`
+
+
+
+Spécifie le format des images de sortie. Il peut s'agir d'une valeur littérale prédéfinie ou de n'importe quelle chaîne de caractères.
+
+### `ImageQuality`
+
+
+
+Représente la qualité perceptive de l'image de sortie sous forme d'une union de valeurs littérales prédéfinies, d'une chaîne de caractères ou d'un nombre.
+
+### `ImageQualityPreset`
+
+
+
+Définit les préréglages disponibles pour contrôler la qualité d'image, extensibles avec n'importe quelle chaîne de caractères.
+
+### `RemotePattern`
+
+
+
+Définit les hooks qu'un service d'images local ou externe doit fournir.
+
+### `ExternalImageService`
+
+
+
+**Type :** `object`
+
+
+Définit les hooks qu'un service de transformation d'images externe doit fournir. Cela nécessite un [hook `getUrl()`](/fr/reference/image-service-reference/#geturl) et prend en charge [trois hooks supplémentaires](/fr/reference/image-service-reference/#hooks).
+
+Apprenez à créer des [services externes](/fr/reference/image-service-reference/#services-externes) dans la référence de l'API des services d'images avec des exemples d'utilisation.
+
+### `LocalImageService`
+
+
+
+**Type :** `object`
+
+
+Définit les hooks qu'un service local de transformation d'images doit fournir. Cela nécessite les hooks [`getUrl()`](/fr/reference/image-service-reference/#geturl), [`parseUrl()`](/fr/reference/image-service-reference/#parseurl) et [`transform()`](/fr/reference/image-service-reference/#transform), et prend en charge [des hooks supplémentaires](/fr/reference/image-service-reference/#hooks).
+
+Apprenez à créer des [services locaux](/fr/reference/image-service-reference/#services-locaux) dans la référence de l'API des services d'images avec des exemples d'utilisation.
+
+### `ImageServiceConfig`
+
+
+
+Un paquet ou un chemin d'accès au module de service d'images. Il peut s'agir du service Sharp intégré à Astro ou d'un service tiers.
+
+#### `config`
+
+
+
+**Type :** `Record`
+
+
+Un objet de configuration transmis au service d'images. Sa structure dépend du service utilisé.