Ce qu'une image dit d'elle-même, et comment elle est lue

Attacher à une image fournie son auteur et ses droits, et dire lesquels de ses pixels se voient, leur opacité et dans quel sens elle est dessinée.

Résumé

Une photo appartient à quelqu'un. L'appareil photo, le scanner ou la photothèque l'ont en général déjà écrit dans le fichier, et on peut reprendre ces lignes exactement telles quelles — ou les remplacer par les vôtres, quand l'image est arrivée sans rien. Dans les deux cas, elles voyagent avec l'image, à l'intérieur du document, et restent avec elle si on l'en ressort. La même entrée dit comment l'image est lue : lesquels de ses pixels laissent voir la page, si une seconde image grise dit à quel point elle est opaque pixel par pixel, et dans quel sens elle est dessinée quand son propre fichier se trompe.

Techniquement

Écrit au premier niveau d'une requête, sous "images"

images énonce ce que chaque image fournie dit d'elle-même, dans un paquet XMP écrit sur l'XObject d'image lui-même. Deux façons : des faits, à partir desquels le serveur écrit le paquet ; ou le nom d'une partie fournie qui contient un paquet écrit ailleurs, transmis tel quel, sans rien ajouter et sans rien vérifier. Une image ne revendique jamais une norme pour son propre compte : la norme se dit une fois, par le document. Ne rien dire d'une image est le cas ordinaire, et une image qu'aucun élément ne dessine n'atteint jamais le document. La même entrée donne ce avec quoi l'XObject lui-même est écrit : le pochoir, les deux sortes de masque, les valeurs d'échantillon transparentes, la plage sur laquelle chaque composante est lue, l'orientation et le profil au travers duquel ses couleurs se lisent.

Schéma de la requête

  • images — tableau, facultatif, vide par défaut.
  • images[].name — chaîne, obligatoire. Le nom de la partie fournie que cette entrée décrit, celui-là même qu'un élément image emploie.
  • images[].metadata — facultatif. Deux formes :
    • {"facts": {...}} — les mêmes champs que metadata : title, author, subject, producer, created, trapped, schemas. Le serveur en écrit le paquet.
    • {"packet": "part name"} — le nom d'une partie fournie qui contient un paquet écrit ailleurs. Ce que le logiciel de lecture y trouve est ce qui a été donné.
  • images[].files — tableau de chaînes, facultatif, vide par défaut. Les noms des pièces jointes déclarées que l'image revendique : le relevé de la numérisation d'où elle vient, les mesures qui en ont été prises, tout ce qu'une machine lit à côté des pixels. Une pièce jointe revendiquée ici appartient à l'image plutôt qu'au document.
  • images[].stencil — booléen, facultatif, false par défaut. Dit si l'image est lue comme un pochoir plutôt que comme une image : elle n'a aucune couleur à elle et dit où mettre la couleur avec laquelle la page remplit déjà. Une image qui n'est pas d'un bit par pixel, à une seule composante, est refusée.
  • images[].stencil_mask — chaîne, facultatif. Le nom de la partie fournie dont les bits à zéro disent quels pixels de cette image se voient. Cette partie est lue comme un pochoir et n'est dessinée nulle part elle-même.
  • images[].soft_mask — chaîne, facultatif. Le nom de la partie grise fournie dont les échantillons disent à quel point cette image est opaque, pixel par pixel : le noir laisse voir au travers, le blanc est plein. Elle est étirée sur l'image, si bien que les deux n'ont pas besoin d'avoir la même taille, et elle n'est dessinée nulle part elle-même.
  • images[].color_key — tableau de paires d'entiers, facultatif, une paire par composante. La plus petite et la plus grande valeur d'échantillon qui laisse voir au travers. Un pixel laisse voir la page seulement là où chacune de ses composantes tombe dans sa paire. Les valeurs sont les nombres sous lesquels les échantillons sont rangés, pas la couleur qu'ils désignent.
  • images[].opaque — booléen, facultatif, false par défaut. Dit si ce que le fichier donne à voir au travers de l'image est abandonné, de sorte que plus rien ne se voit au travers. C'est la réponse à un fichier qui contient un canal alpha dont une norme ne voudra pas.
  • images[].decode — tableau de paires de nombres, facultatif, une paire par composante. L'intervalle sur lequel chaque composante est lue : la valeur que vaut son échantillon le plus bas, puis celle que vaut le plus haut. Une paire prise à l'envers dessine l'image en négatif. Absent, chaque composante est lue sur l'intervalle par défaut de son espace de couleur.
  • images[].orientation — chaîne, facultatif. Le sens dans lequel l'image est dessinée, quoi que dise son propre fichier. Un appareil photo range l'image telle que son capteur l'a lue et note comment le boîtier était tenu ; c'est ce qu'une requête énonce à la place, pour un fichier dont l'appareil a noté la mauvaise chose. Huit valeurs : upright, dessinée comme ses pixels sont rangés ; mirrored_left_to_right, sa gauche et sa droite échangées ; upside_down, tournée d'un demi-tour ; mirrored_top_to_bottom, son haut et son bas échangés ; turned_left et turned_right, un quart de tour dans le sens inverse des aiguilles d'une montre et un quart de tour dans le sens des aiguilles ; mirrored_and_turned_left et mirrored_and_turned_right, mise en miroir puis tournée de ce quart de tour.
  • images[].icc_profile — chaîne, facultatif. Le nom de la partie fournie qui contient le profil ICC au travers duquel les couleurs de l'image se lisent. Un fichier peut en contenir un à lui, et en nommer un ici passe devant. Le profil décrit les composantes dont les couleurs propres de l'image sont faites, sans quoi il est refusé, et le nommer sur une image lue comme un pochoir est refusé.
  • Une partie qui contient un paquet écrit ailleurs écrit ses propriétés sans leur description : la norme est déclarée une seule fois, par le document.

Une requête entière qui crée un PDF

{
  "images": [
    {
      "name": "photo",
      "orientation": "upright",
      "metadata": {
        "facts": {
          "author": "Camille Roy",
          "subject": "The workshop, June 2026"
        }
      }
    }
  ],
  "items": [
    {
      "type": "image",
      "image": "photo",
      "rect": { "llx": 60, "lly": 560, "urx": 300, "ury": 740 }
    }
  ]
}

La ligne qui l'envoie, en trois langages

Le document dans son ensemble

Les numéros que montre le logiciel de lecture Cent courriers dans un seul fichier Ce que le document dit de lui-même Ce que le document dit de lui-même, dit une seule fois Les notes qu'un programme laisse pour lui-même Les notes qu'un programme laisse sur une page Les données qu'un programme accroche à un passage d'encre Un fichier encore lisible dans des dizaines d'années La norme d'impression que le document revendique Le mot de passe qui l'ouvre, et ce qu'on peut en faire Une facture qu'un humain et une machine lisent L'adresse contre laquelle les liens se lisent La version de PDF que le fichier déclare Les pièces jointes du document, à côté de ses pages Les pièces jointes, présentées en portefeuille Les pièces jointes d'une page La fiche d'identité que contient une seule page La norme d'accessibilité que le document déclare Les normes contre lesquelles le document fini est mesuré

Où aller ensuite

Toutes les clés JSON d'une requête, en une page Les quarante et un autres réglages d'une requête

Voir les prix Voir les exemples