Eine Farbe, die in eine andere übergeht
Deklarieren Sie einen Verlauf, entlang einer Linie oder zwischen Kreisen, und füllen Sie dann eine Form damit, indem Sie ihn nennen.
In einem echten PDF ansehen
Verläufe in einer Linie, in einem Kreis und aus einer Funktion gelesen
Fünf Felder: ein Kopfbereich, der ausblendet, dieselbe Ausblendung diagonal, ein Leuchten über seinen eigenen Kreis hinaus fortgesetzt, sodass sich die Ecken füllen, eine Mischung, die über eine dritte Farbe geht, und ein Schachbrett, dessen Farbe daraus berechnet wird, wo jeder Punkt steht, nach rechts röter und nach oben grüner.
Das PDF öffnen Das vollständige Beispiel ansehen
Auch zu sehen in: Mit einem Verlauf gefüllter Text und Formen · Vier Arten von Gittern, jede Ecke in eigener Farbe · Eine Regel statt hundert Farben
Zusammenfassung
Ein Abendhimmel geht von Orange in Blau über, ohne dass man sagen könnte, wo das eine aufhört. Das ist ein Verlauf. Eine Art gleitet von einem Punkt zu einem anderen, wie dieser Himmel; eine andere strahlt von einem Kreis zu einem anderen, wie ein Lichthof um eine Lampe. Eine dritte berechnet die Farbe jedes Punkts daraus, wo dieser Punkt steht, wie weit quer und wie weit nach oben, sodass sie sich in beide Richtungen zugleich ändert. Die vierte ist in Dreiecke geteilt, jede Ecke mit ihrer eigenen Farbe, und sie geht dorthin, wo eine Linie und ein Kreispaar nicht hinkommen: ein von zwei Seiten beleuchtetes Gesicht, eine Karte, deren Grund sich in jede Richtung ändert. Jede davon füllt jede beliebige Form: ein Titelband, einen Kartenhintergrund, eine Scheibe.
Technisch
Auf der obersten Ebene einer Anfrage geschrieben, unter
"shadings"
shadings deklariert die Verläufe, die das Dokument für sich selbst definiert, jeden unter dem Namen, unter dem eine Füllung ihn auswählt. Ein Verlauf wird als Shading-Muster geschrieben — /ShadingType 1, aus einer Funktion zweier Koordinaten gelesen, 2 entlang einer Linie, 3 zwischen zwei Kreisen, 4 über ein Dreiecksgitter —, erreicht über /PatternType 2, sodass die Farbe durch das hindurchscheint, was die Form durchlässt, statt über einen Beschneidungspfad gemalt zu werden. Die beiden, die von einem Ende zum anderen laufen, geben ihre Farben auf zwei Arten an, jeweils eine: zwei Farben von Ende zu Ende oder ein Farbraum und eine Funktion. Zwei Farben von Ende zu Ende werden in dem Farbraum geschrieben, den die Anzahl ihrer Zahlen benennt: Drei Zahlen schreiben /DeviceRGB, vier schreiben /DeviceCMYK, sodass ein Verlauf auf den vier Druckplatten ebenso läuft wie auf einem Bildschirm. Ein Gitter gibt stattdessen an jeder Ecke eine Farbe an, und was innerhalb eines Dreiecks liegt, wird aus seinen drei Ecken berechnet. Eine aus einer Funktion gelesene Farbe wird über ein eigenes Rechteck gelesen, das sechs Zahlen auf der Seite platzieren, und dies ist der einzige Verlauf, dessen Farbe sich in beide Richtungen zugleich ändert.
Anfrageschema
-
shadings— Array, optional, standardmäßig leer. -
shadings[].name— Zeichenkette, erforderlich. Der Name, unter dem eine Füllung diesen Verlauf auswählt. -
shadings[].bounding_box— vier Zahlen, optional, linker, unterer, rechter und oberer Rand des Kastens, auf den der Verlauf beschränkt ist: Außerhalb davon wird nichts gemalt.shadings[].matrix— sechs Zahlen, optional, der Operator cm, der den eigenen Raum des Verlaufs auf der Seite platziert. Ein Gitter nimmt keines von beiden an. -
shadings[].shading— Objekt, erforderlich. Sieben Arten:axial—fromzwei Zahlen erforderlich,tozwei Zahlen erforderlich, in Seitenkoordinaten.radial—fromundtomit je drei Zahlen, erforderlich: Mittelpunkt x, Mittelpunkt y, Radius.function_based—domain,matrix,spaceundfunctionalle erforderlich.domaingibt zwei Zahlenpaare an, das Intervall, das x durchläuft, dann das Intervall, das y durchläuft;matrixdie sechs Zahlen des Operators cm der PDF-Sprache, der dieses Rechteck auf der Seite platziert, wobei[200, 0, 0, 100, 50, 60]den Definitionsbereich[[0, 1], [0, 1]]über das Rechteck von 200 mal 100 streckt, dessen linke untere Ecke bei 50, 60 liegt;spaceeiner der Wertegray,rgbundcmykoder eine Druckfarbe, überseparationbenannt und vollständig angegeben, oder mehrere solcher Druckfarben zugleich überdevice_n, wobei ein deklarierter Farbraum jeder anderen Art abgelehnt wird;functiondie Funktion, aus der die Farbe an jedem Punkt gelesen wird, mit den zwei Koordinaten des Punkts als Eingabe und den Komponenten einer Farbe als Ausgabe, sodass nurcalculationundsampledsie angeben und eine Funktion mit einer anderen Anzahl von Zahlen abgelehnt wird. Außerhalb des platzierten Rechtecks wird nichts gemalt. Geschrieben als/ShadingType1.mesh—triangleserforderlich, ein Array von Gruppen aus drei Ecken. Eine Ecke gibtatan, zwei Zahlen in Seitenkoordinaten, danncolorodertints, wenn das Gitter einenspaceangibt. Ein Gitter ohne Dreieck wird abgelehnt.lattice_mesh—rowserforderlich, ein Array von Eckenreihen, angegeben wie beimesh, jede Reihe so lang wie die erste, mindestens zwei Reihen mit zwei Ecken. Jedes Quadrat aus vier benachbarten Ecken bildet zwei Dreiecke, sodass eine Ecke, an der mehrere Dreiecke zusammentreffen, nur einmal angegeben wird. Geschrieben als/ShadingType5.coons_patch_mesh—patcheserforderlich, ein Array von Patches. Ein Patch gibtpointsan, zwölf Kontrollpunkte aus je zwei Zahlen in Seitenkoordinaten, undcolors, die Farbe jeder seiner vier Ecken, odertints, wenn das Gitter einenspaceangibt. Die zwölf laufen von der ersten Ecke einmal um den Patch herum, jede Seite eine Ecke und dann die zwei Punkte, die die von ihr ausgehende Seite krümmen, sodass die Ecken der erste, vierte, siebte und zehnte Punkt sind. Geschrieben als/ShadingType6.tensor_patch_mesh— dieselbenpatches, mit sechzehnpointspro Patch: die zwölf des Randes, dann die vier im Inneren, der der ersten Ecke nächstgelegene zuerst, dann die der vierten, siebten und zehnten nächstgelegenen. Geschrieben als/ShadingType7. Jede andere Anzahl von Punkten wird abgelehnt, und wo sich zwei Patches überlappen, wird der spätere über den früheren gemalt.
-
Die beiden, die von Ende zu Ende laufen, teilen:
startundend, optionale Farben, zusammen genannt;spaceundfunction, optional, zusammen genannt;extend, zwei optionale boolesche Werte, standardmäßig[false, false].spaceist einer der Wertegray,rgbundcmykoder eine überseparationbenannte und vollständig angegebene Druckfarbe oder mehrere solcher Druckfarben zugleich überdevice_noder der Name eines untercolor_spacesdeklarierten Farbraums jeder Art. Ein Gitter nimmt wederstartnochendnochextendan: Seine Farben sind seine Ecken. Eine aus einer Funktion gelesene Farbe gibt ihren eigenenspaceund ihre eigenefunctionan, beide dort erforderlich, und wederstartnochendnochextend. -
Die beiden, die von Ende zu Ende laufen, nehmen außerdem
stopsan, optional, zusammen mitspaceanstelle vonfunctiongenannt: ein Array aus mindestens zwei Objekten, jedesat, eine Zahl von 0 bis 1, weiter als die vorherige, undtints, eine Zahl pro Komponente vonspace. Ein Stopp mit einer anderen Anzahl oder eine Zahl außerhalb des Bereichs des Farbraums wird abgelehnt;stopsnebenstart,endoderfunctionwird ebenfalls abgelehnt. -
Jede der sieben Arten nimmt zusätzlich zu ihren eigenen Feldern
anti_aliasan: ein optionaler boolescher Wert, der die Anzeigesoftware bittet, die Farbübergänge des Verlaufs gegen Aliasing zu filtern — das falsche Muster, das dort entsteht, wo sich die Farbe schnell ändert im Vergleich zur Abtastrate des Ausgabegeräts —, oder es nicht zu tun. Fehlt er, wird kein/AntiAlias-Eintrag geschrieben, und die Anzeigesoftware nimmt dannfalsean, den Standardwert, den ISO 32000-2 dem Eintrag gibt. -
Ein Gitter gibt seine Farben auf eine von zwei Arten an, jeweils eine:
coloran jeder Ecke und keinspace, oderspaceundtintsan jeder Ecke. Seinspaceliest, was derspaceeines Verlaufs liest, undtintsgibt eine Zahl pro Komponente davon an — eine pro Druckfarbe, wo der Farbraum aus benannten Druckfarben besteht; so gelangt ein Gitter auf die Platten einer Druckmaschine. Einspaceneben einer Eckfarbecolor,tintsohnespaceund eine Ecke, die keines von beiden angibt, werden jeweils abgelehnt. -
Genau eine der beiden Arten, die Farbe anzugeben:
startundendzusammen oderspaceundfunctionzusammen. Beide zusammen werden abgelehnt, keine davon ebenfalls. -
startundendwerden beide als Lichtfarbe oder beide als Druckfarbe angegeben: je drei Zahlen oder je vier, die den Verlauf auf die vier Druckplatten schreiben. Ein Grau ist Lichtfarbe. Ein Ende als Lichtfarbe und das andere als Druckfarbe wird abgelehnt, und die Meldung nennt die Zahlen beider Enden. -
functionhat vier Formen:exponential,stitching,sampledundcalculation.exponential, mitlowundhigherforderlich,domainzwei Zahlen optional (0 bis 1),exponentoptional (1) undrangeoptional.stitching, mitfunctions,boundsundencodeerforderlich,domainundrangeoptional. -
sampledschreibt die Ergebnisse als Tabelle über ein Raster aus; so lässt sich eine Kurve angeben, die keine Formel beschreibt — ein Spektrum, eine Charakterisierung einer Druckmaschine, eine gemessene Antwort:domain,range,sizeundsampleserforderlich,bits,decode,encodeundbetweenoptional, wobeibetweenangibt, wie das Ergebnis von einem Abtastwert zum nächsten verläuft, standardmäßiglinear, odercubic, was das Format nur für eine Funktion mit einer Zahl erlaubt.calculationgibt das Ergebnis als kleines Programm an, für eine berechnete statt nachgeschlagene Farbe:program, die auf einem Stack ausgeführten Schritte, mitdomainundrange, alle drei erforderlich. - Ein Gitter gibt jede Ecke entweder als Lichtfarbe oder als Druckfarbe an, wie die zwei Enden der anderen Arten: je drei Zahlen oder je vier, die das Gitter auf die vier Druckplatten schreiben. Eine Ecke als Lichtfarbe und eine andere als Druckfarbe wird abgelehnt.
-
Eine Füllung nennt einen Verlauf über die Form
{"shading": "the name"}.
Eine vollständige Anfrage, die ein PDF erzeugt
{
"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" }
}
]
}
Farbe und wie sie gezeigt wird
Das Gerät, für das die Farben angegeben sind Welche Platte eines separierten Bogens eine Seite ist Das Gerät, für das die Farben einer Seite angegeben sind Farbe über Rot, Grün und Blau hinaus deklarieren Was die nackten Zahlen einer Seite bedeuten Deckkraft, Mischen und was eine Druckmaschine verlangt Eine Zelle, wiederholt, um eine Form zu füllen Der Farbraum, in dem eine Seite ihre Farben mischt
Wohin als Nächstes
Jeder JSON-Schlüssel einer Anfrage, auf einer Seite Die übrigen einundvierzig Einstellungen einer Anfrage