Was ein Bild über sich sagt, und wie es gelesen wird

Geben Sie einem mitgelieferten Bild Urheber und Rechte mit und legen Sie fest, welche Pixel sichtbar sind, wie deckend und in welcher Ausrichtung.

In einem echten PDF ansehen

Jedes Bild, das ein Scanner in eine Datei gelegt hat

Eine Datei mit drei Blättern und eine Datei mit einem Foto, jedes Bild auf einer Seite in seiner eigenen Größe; das Foto kommt genau so hinein, wie die Kamera es geschrieben hat, denn die Anzeigesoftware liest ein Foto selbst.

Das PDF öffnen Das vollständige Beispiel ansehen

Auch zu sehen in: Ein Register, dessen Seiten sagen, woher sie stammen

Zusammenfassung

Ein Foto gehört jemandem. Die Kamera, der Scanner oder die Bildagentur hat das meist bereits in der Datei selbst vermerkt, und diese Zeilen lassen sich genau so weitergeben, wie sie sind — oder durch Ihre ersetzen, wo das Bild ohne kam. So oder so reisen sie mit dem Bild im Dokument und bleiben bei ihm, wenn es wieder herausgeholt wird. Derselbe Eintrag sagt, wie das Bild gelesen wird: welche seiner Pixel die Seite durchscheinen lassen, ob ein zweites Graustufenbild Pixel für Pixel angibt, wie deckend es ist, und in welcher Ausrichtung es gezeichnet wird, wenn seine eigene Datei das Falsche sagt.

Technisch

Auf der obersten Ebene einer Anfrage geschrieben, unter "images"

images gibt an, was jedes mitgelieferte Bild über sich selbst sagt, in einem XMP-Paket, das am Bild-XObject selbst geschrieben wird. Zwei Wege: Angaben, aus denen der Server das Paket schreibt; oder der Name eines mitgelieferten Teils mit einem anderswo geschriebenen Paket, das unverändert weitergegeben wird, ohne Zusatz und ohne Prüfung. Ein Bild beansprucht nie selbst eine Norm: Die Norm wird einmal angegeben, vom Dokument. Über ein Bild nichts zu sagen ist der Normalfall, und ein Bild, das kein Element zeichnet, gelangt nie in das Dokument. Derselbe Eintrag gibt an, womit das XObject selbst geschrieben wird: die Schablone, die zwei Arten von Masken, die durchsichtigen Abtastwerte, der Bereich, über den jede Komponente gelesen wird, die Ausrichtung und das Profil, durch das seine Farben gelesen werden.

Anfrageschema

  • images — Array, optional, standardmäßig leer.
  • images[].name — Zeichenkette, erforderlich. Der Name des mitgelieferten Teils, den dieser Eintrag beschreibt, genau der, den ein image-Element verwendet.
  • images[].metadata — optional. Zwei Formen:
    • {"facts": {...}} — dieselben Felder wie metadata: title, author, subject, producer, created, trapped, schemas. Der Server schreibt das Paket daraus.
    • {"packet": "part name"} — der Name eines mitgelieferten Teils mit einem anderswo geschriebenen Paket. Was die Anzeigesoftware dort findet, ist das, was übergeben wurde.
  • images[].files — Array von Zeichenketten, optional, standardmäßig leer. Die Namen der deklarierten Anhänge, auf die das Bild verweist: das Protokoll des Scans, aus dem es stammt, die an ihm vorgenommenen Messungen, was auch immer eine Maschine neben den Pixeln liest. Ein hier beanspruchter Anhang gehört zum Bild statt zum Dokument.
  • images[].stencil — boolescher Wert, optional, standardmäßig false. Ob das Bild als Schablone statt als Bild gelesen wird: Es hat keine eigene Farbe und gibt an, wohin die Farbe kommt, mit der die Seite bereits füllt. Ein Bild, das nicht ein Bit pro Pixel und eine Komponente hat, wird abgelehnt.
  • images[].stencil_mask — Zeichenkette, optional. Der Name des mitgelieferten Teils, dessen Null-Bits angeben, welche Pixel dieses Bildes sichtbar sind. Dieser Teil wird als Schablone gelesen und selbst nirgends gezeichnet.
  • images[].soft_mask — Zeichenkette, optional. Der Name des mitgelieferten Graustufenteils, dessen Abtastwerte Pixel für Pixel angeben, wie deckend dieses Bild ist: Schwarz ist durchsichtig, Weiß deckend. Sie wird über das Bild gestreckt, beide müssen also nicht gleich groß sein, und sie selbst wird nirgends gezeichnet.
  • images[].color_key — Array von Ganzzahlpaaren, optional, ein Paar pro Komponente. Der niedrigste und der höchste Abtastwert, der durchsichtig ist. Ein Pixel zeigt die Seite nur dort, wo jede seiner Komponenten in ihr Paar fällt. Die Werte sind die Zahlen, als die die Abtastwerte gespeichert sind, nicht die Farbe, für die sie stehen.
  • images[].opaque — boolescher Wert, optional, standardmäßig false. Ob alles, was laut Datei durch das Bild hindurchscheint, verworfen wird, sodass überhaupt nichts mehr hindurchscheint. Das ist die Antwort auf eine Datei mit einem Alphakanal, den eine Norm nicht zulässt.
  • images[].decode — Array von Zahlenpaaren, optional, ein Paar pro Komponente. Der Bereich, über den jede Komponente gelesen wird: der Wert, für den ihr niedrigster Abtastwert steht, dann der Wert, für den ihr höchster steht. Ein umgekehrtes Paar zeichnet das Bild als sein eigenes Negativ. Fehlt es, wird jede Komponente über den Standardbereich ihres Farbraums gelesen.
  • images[].orientation — Zeichenkette, optional. In welcher Ausrichtung das Bild gezeichnet wird, was auch immer seine eigene Datei sagt. Eine Kamera speichert ein Bild so, wie ihr Sensor es gelesen hat, und vermerkt, wie das Gehäuse gehalten wurde; dies gibt stattdessen die Anfrage an, für eine Datei, deren Kamera das Falsche vermerkt hat. Acht Werte: upright, so gezeichnet, wie die Pixel gespeichert sind; mirrored_left_to_right, linke und rechte Seite vertauscht; upside_down, um eine halbe Drehung gedreht; mirrored_top_to_bottom, oben und unten vertauscht; turned_left und turned_right, eine Vierteldrehung gegen und im Uhrzeigersinn; mirrored_and_turned_left und mirrored_and_turned_right, gespiegelt und dann um diese Vierteldrehung gedreht.
  • images[].icc_profile — Zeichenkette, optional. Der Name des mitgelieferten Teils mit dem ICC-Profil, durch das die Farben des Bildes gelesen werden. Eine Datei kann ein eigenes enthalten; ein hier genanntes hat Vorrang. Das Profil beschreibt die Komponenten, aus denen die eigenen Farben des Bildes bestehen, sonst wird es abgelehnt, und es bei einem als Schablone gelesenen Bild zu nennen wird abgelehnt.
  • images[].opacity_channel — Zeichenkette, optional. Bei einem TIFF, in dem ein Bildbearbeitungsprogramm mehrere Deckkraftkomponenten gespeichert hat, der Name derjenigen, die angibt, wie deckend das Bild ist; fehlt er, wird die erste genommen, die die Datei als Deckkraft ausweist. Die Farben, die die Datei mit einer dieser Komponenten multipliziert hat, werden wieder durch sie geteilt, jede andere wird verworfen, und eine Komponente, über deren Bedeutung die Datei nichts sagt, wird als von den Farben getrennte Deckkraft gelesen. Ein Name bei einem Teil, das kein TIFF ist, oder einer, unter dem keine Komponente gespeichert wurde, wird abgelehnt.
  • images[].clipping_path — Objekt, optional. Der Pfad, innerhalb dessen das Bild gehalten wird, wenn ein image-Element clip_to_path angibt; er hat Vorrang vor dem, den die eigene Datei des Bildes enthält. Er nimmt contours an, ein Array geschlossener Konturen. Eine Kontur nimmt knots an, ein Array der Punkte, die sie in kubischen Bézierkurven durchläuft, wobei die letzte Kurve zum ersten Knoten zurückkehrt. Ein Knoten nimmt anchor an, den Punkt, durch den die Kontur läuft, sowie arriving und leaving, die Kontrollpunkte der ankommenden und abgehenden Kurven. Jeder ist ein Paar [x, y] in Bruchteilen des Bildes, wie es gespeichert ist, x ab seinem linken Rand und y ab seinem unteren Rand, sodass ein auf dem Weg in seinen Kasten gedrehtes oder gespiegeltes Bild seinen Pfad mitnimmt. Ein Knoten, dessen Kontrollpunkte sein Anker sind, macht die Kurven zu beiden Seiten gerade. Wo sich Konturen überlappen, liegt ein Punkt innerhalb einer geraden Anzahl von ihnen außerhalb des Pfads. Ein Pfad ohne Kontur hält nichts fest, und das Bild wird vollständig gezeichnet.
  • Ein Teil mit einem anderswo geschriebenen Paket schreibt seine Eigenschaften ohne ihre Beschreibung: Die Norm wird einmal angegeben, vom Dokument.
  • images[].interpolate — boolescher Wert, optional, standardmäßig false. Ob die Anzeigesoftware das Bild glättet, wo es größer als seine Pixel gezeichnet wird. Das Bild zeigt dann nicht mehr genau, was es enthält, weshalb ein Dokument, das eine archive-Norm beansprucht, es ablehnt.
  • images[].rendering_intent — Zeichenkette, optional. Wie die Anzeigesoftware die Farben des Bildes in das überführt, was das Gerät darstellen kann, am Bild selbst angegeben und mit Vorrang vor dem Intent des Grafikzustands, unter dem es gezeichnet wird: absolute_colorimetric, relative_colorimetric, saturation oder perceptual.
  • images[].inks — Objekt, optional. Die Druckfarben, deren Farbtöne die Abtastwerte sind, vollständig angegeben wie ein deklarierter separation- oder device_n-Farbraum unter color_spaces: ein Graustufenscan, in einer Sonderfarbe gedruckt, ein Lack, ein Weiß unter einem Etikett. Die Abtastwerte werden nicht angetastet, nur das, als was sie gelesen werden, sodass das Bild so viele Komponenten hat wie der Farbraum Druckfarben. Jede andere Art von Farbraum wird abgelehnt, ebenso ein Bild, das zusätzlich measured nennt, eine Schablone, ein Bild, das eine Farbtabelle indiziert, eines, das durch ein Profil gelesen wird, und ein JPEG-2000- oder JBIG2-Stream.
  • images[].measured — Objekt, optional. Die gemessene Farbe, als die die Abtastwerte gelesen werden, vollständig angegeben wie ein deklarierter cal_gray-, cal_rgb- oder lab-Farbraum unter color_spaces: ein Scan von einem kalibrierten Scanner, die Werte eines Farbmessgeräts. Die Abtastwerte werden nicht angetastet, nur das, als was sie gelesen werden, sodass das Bild so viele Komponenten hat, wie der Farbraum annimmt: eine für cal_gray, drei für die beiden anderen. Jede andere Art von Farbraum wird abgelehnt, ebenso ein Bild, das zusätzlich inks nennt, eine Schablone, ein Bild, das eine Farbtabelle indiziert, eines, das durch ein Profil gelesen wird, und ein JPEG-2000- oder JBIG2-Stream.
  • images[].jbig2 — Objekt, optional. {} gibt an, dass der Teil ein JBIG2-Stream ist, der nie an seinen Bytes erkannt wird; {"globals": "part name"} nennt zusätzlich den mitgelieferten Teil mit den Segmenten, gegen die der Stream gelesen wird. Die Bytes werden unverändert übernommen. Ein Teil, dessen Segmente nie die Seitengröße angeben, wird abgelehnt, ebenso eine Bildnummer und ein Deckkraftkanal daneben, die beide zu einem TIFF gehören.
  • images[].fax — boolescher Wert, optional, standardmäßig false. Ob ein Bild mit einem Bit pro Abtastwert so kodiert wird, wie ein Faxgerät eine Seite kodiert, CCITT Gruppe 4.

Eine vollständige Anfrage, die ein PDF erzeugt

{
  "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 }
    }
  ]
}

Die Zeile, die es sendet, in drei Sprachen

Das Dokument als Ganzes

Die Nummern, die die Anzeigesoftware zeigt Hundert Briefe in einer einzigen Datei Was das Dokument über sich sagt Was das Dokument über sich sagt, einmal gesagt Text, den niemand kopieren kann Notizen, die ein Programm in der Datei für sich hinterlässt Die Notizen, die ein Programm auf einer Seite hinterlässt Die Daten, die ein Programm an einen Farbabschnitt hängt Eine Datei, die noch in Jahrzehnten lesbar ist Die Drucknorm, die das Dokument beansprucht Die beanspruchte Norm für variablen Datendruck Das Passwort, das es öffnet, und was damit getan werden darf Eine Rechnung, die Mensch und Maschine gleichermaßen lesen Die Adresse, gegen die relative Links gelesen werden Die PDF-Version, die die Datei angibt Die PDF-Erweiterungen, die die Datei zu nutzen angibt Die Anhänge, die das Dokument neben seinen Seiten trägt Dateien, die das Dokument nennt, ohne sie zu enthalten Die Anhänge als Portfolio gezeigt Welche Anhänge eine Seite beansprucht Welche Anhänge eine Schrift beansprucht Der Ausweis, den eine einzelne Schrift trägt Welche Anhänge die Karte des Dokuments beansprucht Eine anderswo geschriebene Dokumentkarte Die Bereiche einer Seite, in denen ein Leser misst Der Ausweis, den eine einzelne Seite trägt Die Barrierefreiheitsnorm, die das Dokument beansprucht Die Normen, an denen das fertige Dokument gemessen wird

Wohin als Nächstes

Jeder JSON-Schlüssel einer Anfrage, auf einer Seite Die übrigen einundvierzig Einstellungen einer Anfrage

Die Preise ansehen Die Beispiele ansehen