Une couleur qui glisse vers une autre

Déclarer un dégradé, en ligne droite ou en cercle, et remplir ensuite une forme avec lui en le nommant.

Résumé

Un ciel de fin de journée passe de l'orange au bleu sans qu'on voie où l'un s'arrête. C'est un dégradé. L'un glisse d'un point à un autre, comme ce ciel ; un autre rayonne d'un cercle vers un autre, comme un halo autour d'une lampe. Un troisième calcule la couleur de chaque point d'après l'endroit où ce point se tient, sa distance en largeur et sa distance en hauteur, si bien qu'il tourne dans les deux sens à la fois. Le quatrième est découpé en triangles, chaque sommet ayant sa propre couleur, et il va là où une ligne et deux cercles ne vont pas : un visage éclairé des deux côtés, une carte dont le fond change dans toutes les directions. N'importe lequel remplit la forme que vous voulez : un bandeau de titre, un fond de carte, un rond.

Techniquement

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

shadings déclare les dégradés que le document définit pour lui-même, chacun sous le nom par lequel un remplissage le sélectionne. Un dégradé s'écrit en motif de dégradé — /ShadingType 1 lu dans une fonction de deux coordonnées, 2 le long d'une ligne, 3 entre deux cercles, 4 sur un maillage de triangles — atteint par /PatternType 2, si bien que la couleur transparaît à travers ce que la forme laisse passer plutôt que d'être peinte par-dessus un découpage. Les deux qui courent de bout en bout disent leurs couleurs de deux façons, et d'une seule à la fois : deux couleurs de bout en bout, ou un espace et une fonction. Deux couleurs de bout en bout s'écrivent dans l'espace que désigne le compte de leurs nombres : trois nombres écrivent /DeviceRGB, quatre écrivent /DeviceCMYK, si bien qu'un dégradé court sur les quatre plaques d'imprimerie aussi bien que sur un écran. Un maillage, lui, dit une couleur à chaque sommet, et ce qui se trouve à l'intérieur d'un triangle se déduit de ses trois sommets. Une couleur lue dans une fonction se lit sur un rectangle qui lui est propre, posé sur la page par six nombres, et c'est le seul dégradé dont la couleur tourne dans les deux directions à la fois.

Schéma de la requête

  • shadings — tableau, facultatif, vide par défaut.
  • shadings[].name — chaîne, obligatoire. Le nom par lequel un remplissage sélectionne ce dégradé.
  • shadings[].shading — objet, obligatoire. Sept sortes :
    • axialfrom deux nombres obligatoire, to deux nombres obligatoire, en coordonnées de page.
    • radialfrom et to en trois nombres obligatoires : centre en x, centre en y, rayon.
    • function_baseddomain, matrix, space et function tous obligatoires. domain donne deux paires de nombres, l'intervalle que parcourt x puis l'intervalle que parcourt y ; matrix, les six nombres de l'opérateur cm du langage PDF, qui pose ce rectangle sur la page, [200, 0, 0, 100, 50, 60] étirant le domaine [[0, 1], [0, 1]] sur le rectangle de 200 par 100 dont le coin inférieur gauche se tient en 50, 60 ; space, l'un de gray, rgb et cmyk, ou une encre de presse nommée et donnée en entier par separation, ou plusieurs de ces encres à la fois par device_n, tout autre espace déclaré étant refusé ; function, la fonction dans laquelle se lit la couleur de chaque point, les deux coordonnées du point en entrée et les composantes d'une couleur en sortie, si bien que seules calculation et sampled la disent et qu'une fonction prenant un autre nombre d'entrées est refusée. Rien n'est peint hors du rectangle posé. Écrit en /ShadingType 1.
    • meshtriangles obligatoire, tableau de groupes de trois sommets. Un sommet dit at, deux nombres en coordonnées de page, puis color, ou tints quand le maillage donne un space. Un maillage qui ne dit aucun triangle est refusé.
    • lattice_meshrows obligatoire, tableau de rangées de sommets, chaque sommet donné comme dans un mesh, toutes les rangées aussi longues que la première, au moins deux rangées de deux sommets. Chaque carré de quatre sommets voisins fait deux triangles : un sommet commun à plusieurs triangles n'est donc donné qu'une fois. Écrit en /ShadingType 5.
    • coons_patch_meshpatches obligatoire, tableau de carreaux. Un carreau donne points, douze points de contrôle de deux nombres chacun en coordonnées de page, et colors, la couleur de chacun de ses quatre coins, ou tints quand le maillage donne un space. Les douze font le tour du carreau à partir du premier coin : pour chaque côté, un coin puis les deux points qui courbent le côté qui en part. Les coins sont donc le premier, le quatrième, le septième et le dixième point. Écrit en /ShadingType 6.
    • tensor_patch_mesh — les mêmes patches, avec seize points par carreau : les douze du contour, puis les quatre de l'intérieur, d'abord le plus proche du premier coin, puis ceux des quatrième, septième et dixième points. Écrit en /ShadingType 7. Tout autre nombre de points est refusé, et là où deux carreaux se chevauchent, le second recouvre le premier.
  • Les deux qui courent de bout en bout partagent : start et end, couleurs facultatives, nommées ensemble ; space et function, facultatifs, nommés ensemble ; extend, deux booléens facultatifs, [false, false] par défaut. space est l'un de gray, rgb et cmyk, ou une encre de presse nommée et donnée en entier par separation, ou plusieurs de ces encres à la fois par device_n, tout autre espace déclaré étant refusé. Un maillage ne prend ni start, ni end, ni extend : ses couleurs sont ses sommets. Une couleur lue dans une fonction donne ses propres space et function, tous deux obligatoires là, et ni start, ni end, ni extend.
  • Chacune des sept sortes prend anti_alias en plus de ses propres champs : un booléen facultatif qui demande au lecteur de filtrer les transitions de couleur du dégradé contre le crénelage — le faux motif qui apparaît là où la couleur varie vite par rapport à la cadence à laquelle le périphérique de sortie l'échantillonne — ou de ne pas le faire. Absent, aucune entrée /AntiAlias n'est écrite, et le lecteur la prend alors pour false, la valeur par défaut que la norme ISO 32000-2 lui donne.
  • Un maillage dit ses couleurs de deux façons, jamais des deux à la fois : color à chaque sommet et pas de space, ou bien space et tints à chaque sommet. Son space lit ce que lit celui d'un dégradé, et tints donne un nombre par composante — une teinte par encre quand l'espace est fait d'encres nommées, ce qui porte un maillage sur les plaques d'une presse. Un space à côté d'un color de sommet, des tints sans space, un sommet qui ne dit ni l'un ni l'autre : chacun est refusé.
  • Exactement une des deux façons de dire la couleur : start et end ensemble, ou space et function ensemble. Les deux ensemble sont refusées, aucune des deux aussi.
  • start et end se disent tous les deux en lumière ou tous les deux en encre : trois nombres chacun, ou quatre chacun qui écrivent le dégradé sur les quatre plaques d'imprimerie. Un gris est de la lumière. Un bout en lumière et l'autre en encre est refusé, le message nommant les nombres des deux bouts.
  • function prend quatre formes. exponential, avec low et high obligatoires, domain deux nombres facultatif (0 à 1), exponent facultatif (1) et range facultatif. stitching, avec functions, bounds et encode obligatoires, domain et range facultatifs.
  • sampled écrit les réponses en table sur une grille, ce qui est la façon de dire une courbe qu'aucune formule ne décrit — un spectre, une caractérisation de presse, une réponse mesurée : domain, range, size et samples obligatoires, bits, decode, encode et between facultatifs, between disant comment la réponse court d'un échantillon au suivant, linear par défaut, ou cubic, que le format n'admet que pour une fonction d'un seul nombre. calculation énonce la réponse sous forme de petit programme, pour une couleur calculée plutôt que consultée : program, les étapes exécutées sur une pile, avec domain et range, tous trois obligatoires.
  • Un maillage dit tous ses sommets en lumière ou tous en encre, comme les deux bouts des autres sortes : trois nombres chacun, ou quatre chacun pour écrire le maillage sur les quatre plaques d'imprimerie. Un sommet en lumière et un autre en encre est refusé.
  • Un remplissage nomme un dégradé par la forme {"shading": "the name"}.

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

{
  "shadings": [
    {
      "name": "sunrise",
      "shading": {
        "axial": {
          "from": [60, 700],
          "to": [300, 700],
          "start": [0.95, 0.75, 0.2],
          "end": [0.2, 0.35, 0.75]
        }
      }
    },
    {
      "name": "spectrum",
      "shading": {
        "axial": {
          "from": [320, 700],
          "to": [535, 700],
          "space": "rgb",
          "function": {
            "sampled": {
              "domain": [[0, 1]],
              "range": [[0, 1], [0, 1], [0, 1]],
              "size": [4],
              "bits": 16,
              "between": "cubic",
              "samples": [
                0.85, 0.12, 0.1,
                0.92, 0.66, 0.11,
                0.16, 0.6, 0.31,
                0.11, 0.26, 0.72
              ]
            }
          }
        }
      }
    }
  ],
  "items": [
    {
      "type": "rect",
      "rect": { "llx": 60, "lly": 700, "urx": 300, "ury": 780 },
      "fill": { "shading": "sunrise" }
    },
    {
      "type": "rect",
      "rect": { "llx": 320, "lly": 700, "urx": 535, "ury": 780 },
      "fill": { "shading": "spectrum" }
    }
  ]
}

La ligne qui l'envoie, en trois langages

La couleur et la façon dont elle est rendue

L'appareil pour lequel les couleurs sont dites De quelle plaque d'une feuille séparée une page est L'appareil pour lequel les couleurs d'une page sont dites Déclarer une couleur au-delà du rouge-vert-bleu Ce que veulent dire les nombres bruts d'une page L'opacité, le mélange, et ce que demande une presse Une case répétée pour remplir une forme L'espace dans lequel la page mélange ses couleurs

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