Enkonduko en la aŭtomatan daten-prilaboradon

10 Kodado de datenoj: vektoraj (strekaj) bildoj

10 Kodierung von Daten: Vektorbilder (Strichbilder)

La antaŭa leciono klarigis, kiel kodi punktokradajn bildojn. Alia maniero estas kodi bildojn kiel vektorajn (strekarajn) bildojn. Vektoraj bildoj similas bildojn, kiujn oni desegnas per globskribilo; ili konsistas el rektaj strekoj, kurboj, cirkloj ktp.

Die vorige Lektion erklärte die Kodierung von Punktrasterbildern. Bilder lassen sich aber auch anders kodieren, nämlich als Vektorbilder (Strichbilder). Vektorbilder ähneln Bildern, die man mit einem Kugelschreiber zeichnen kann; sie bestehen aus geraden Strichen, Kurven, Kreisen usw.

Vektoraj bildoj en komputiloj kodas instrukciojn, kiel desegni bildon, ekzemple:

  • desegnu cirklon kun centro (267;189) kaj radiuso 125; la cirkla rando larĝu 2 unuojn kaj estu blua, la cirkla interno havu la "veran" koloron (125; 244; 150). ("Vera koloro" konsistas el libere elekteblaj valoroj por la ruĝa, verda kaj blua partoj, normale relative al iu maksimuma valoro, ofte 255 aŭ 256.)
  • desegnu ruĝan rektan linion 3 unuojn larĝan de pozicio (12;234) al pozicio (456;113).

La sekva skizo klarigas la bildon. Atentu, ke la ruĝa streko situas super la cirklo, ĉar ĝi estas desegnata post la cirklo.

Vektorbilder im Rechner kodieren Anweisungen, wie ein Bild gezeichnet wird, zum Beispiel:

  • Zeichne einen Kreis mit dem Mittelpunkt (267, 189) und einem Radius von 125; der Rand des Kreises soll zwei Einheiten breit und blau sein, das Innere des Kreises soll die "echte" Farbe (125; 244; 150) haben. (Eine "echte" Farbe besteht aus frei wählbaren Werten für den Rot-, Grün- und Blauanteil, gegeben im Verhätnis zu einem Maximalwert, der oft 255 oder 256 ist.)
  • Zeichne eine rote, drei Einheiten breite Strecke von Position (12;234) zu Position (456;113).

Die nachstehende Skizze erläutert das Bild. Beachten Sie, dass die rote Strecke über dem Kreis liegt, da sie nach dem Kreis gezeichnet wird.

vektora bildo

Strekaraj bildoj bonege taŭgas por prezenti skemajn desegnojn, mapojn ktp., sed ne por fotografie realismaj bildoj. Eblas ajne pligrandigi, malpligrandigi, rotaciigi ilin sen perdo de informo aŭ malklariĝo. Antaŭ la prezentado sur la ekrano aŭ la presilo necesas tamen transformi ilin al kradaj (rastrumaj) bildoj. (En la 1980-aj jaroj, kiam komputila memoro estis ege multekosta, ekzistis ekran-vidigiloj, kiuj desegnis rekte strekojn, vidigitajn per movo de katod-radio.)

Vektoraj bildoj ofte ne aspektas tiom "bele" kiom punkto-kradaj, sed ili havas gravan avantaĝon: Ilia precizeco ne estas limigita per la difino de punkto-krado. Vektoraj bildoj estas prezenteblaj je ajna nivelo de detalemo; kontraŭe, kiam oni pligrandigas aŭ malgrandigas kradan bildon, mankas informoj por detaloj, kiel montras jenaj bildoj:

Vektorbilder eignen sich ausgezeichnet zur Darstellung von Schemazeichnungen, Landkarten usw., aber nicht für fotografisch realistische Bilder. Man kann sie beliebig vergrößern, verkleinern und drehen, ohne dass Information verloren geht oder Unschärfen auftreten. Vor der Darstellung auf einem Bildschirm oder Drucker muss man sie allerdings in Rasterform (Punktgitterform) umwandeln. (In den 1980-er Jahren, als Rechnerspeicher sehr teuer war, gab es Bildschirmsichtgeräte, die Striche durch direkte Bewegung des Kathodenstrahls zeichneten.)

Vektorbilder sehen oft nicht so "schön" aus wie Rasterbilder, haben aber einen großen Vorteil: Ihre Genauigkeit ist nicht durch die Auflösung des Punktrasters begrenzt. Vektorbilder aber sind auf jeder Genauigkeitsstufe darstellbar; wenn man aber ein Rasterbild vergrößert oder verkleinert, fehlt Information über Einzelheiten, wie folgende Bilder zeigen:

La originalo de nia bildo montras verdan elipson kaj ruĝan strekon. Ĝi estas prezentata en rastro de 140×140 punktoj. Das Original unseres Bildes zeigt eine grüne Ellipse und einen roten Strich. Es ist in einem Raster von 140×140 Punkten dargestellt.
Malgrandigo al 70×70 punktoj laŭ krada tekniko kaŭzas, ke la ruĝa streko disiĝas al kelkaj streketoj. Verkleinerung auf 70×70 Punkte nach Rastertechnik führt dazu, dass der rote Strich sich in mehrere Strichelchen auflöst.
Malgrandigo laŭ vektora tekniko donas optimuman rezulton. Verkleinerung nach Vektortechnik ergibt optimale Ergebnisse.
Pligrandigo de bildoparto al 140×140 punktoj laŭ krada tekniko kaŭzas, ke la ruĝa streko aperas "ŝtupe". Vergrößerung eines Ausschnitts auf 140×140 Punkte nach Rastertechnik führt dazu, dass der rote Strich "gestuft" erscheint.
Pligrandigo laŭ vektora tekniko donas optimuman rezulton. Vergrößerung nach Vektortechnik ergibt optimale Ergebnisse.

Videblas, ke en la krada tekniko pligrandigo kaŭzas "ŝtupojn" en la konturoj ("grajneco"), dum malpligrandigo disigas ilin al pecetoj. La vektora tekniko permesas plaĉan prezentadon en ajna skalo.

Rimarkigo: Ekzistas teknikoj de "glatigo", per kiuj malpli rimarkeblas la perdo de informo ĉe la malpligrandigo de punkto-kradaj bildoj; sed la perdo ĉiam ekzistas.

La esprimo "grajneco" devenas el la tradicia fotografio, en kiu filmo konsistas el "grajnoj" de iu salo. La grandeco de tiuj grajnoj limigas la distingivon de la fotoj. Se la grajno estas tre grandaj, oni diras, ke la foto estas "grajneca".

Wie man sieht, führt in der Rastertechnik eine Vergrößerung zu "Stufen" in den Konturen ("Körnigkeit"), während eine Verkleinerung Konturen zerstückelt. Die Vektortechnik erlaubt in jedem Maßstab eine ansprechende Darstellung.

Anmerkung: Es gibt Techniken zur Glättung (engl. anti-aliasing), durch die der Informationsverlust bei der Verkleinerung von Rasterbildern weniger auffällt; der Verlust findet aber immer statt.

Der Ausdruck "Körnigkeit" kommt aus der herkömmlichen Fotografie, bei der ein Film aus "Körnern" eines Salzes besteht. Die Größe dieser Körner begrenzt die Auflösung der Fotos. Wenn die Körner sehr groß sind, sagt man, das Foto sei "körnig".

SVG

Ekzistas normigita daten-aranĝo por vektoraj bildoj. Ĝi nomiĝas SVG (akronimo por "skal-ŝanĝebla vektora grafiko", angle "scalable vector graphics"). Jen kiel la supra ekzemplo (verda cirklo, ruĝa streko) estas kodebla per SVG:

SVG

Es gibt ein normiertes Datenformat für Vektorbilder, namens SVG (Abkürzung für "Skalierbare Vektor-Grafik", englisch "scalable vector graphics"). Das Beispiel vom Anfang der Lektion (grüner Kreis, roter Strich) kann man folgendermaßen in SVG kodieren:

SVG-kodosignifo Bedeutung
<circle cirklo ein Kreis
cx="267" cy="189" ĝia centro sein Mittelpunkt
r="125" ĝia radiuso sein Radius
fill="#7df496" ena koloro Füllfarbe
stroke="#0000cc" randa koloro Farbe des Randes
stroke-width="3pt"/> randa larĝo Breite des Randes
<line streko ein Strich
x1="12" y1="234" komenca punkto Anfangspunkt
x2="456" y2="113" fina punkto Endpunkt
stroke="#ff3333" linia koloro Linienfarbe
stroke-width="3pt"/> linia larĝo Linienbreite

Se via krozilo kapablas montri SVG-bildojn, vi povas vidi la bildon.

Wenn Ihr Browser SVG-Bilder unterstützt, können Sie sich das SVG-Bild ansehen.


Specimenaj demandoj

  • Kion kodas vektoraj bildoj?
  • Ĉu vektora bild-kodado taŭgas por kodi realismajn fotojn?
  • Kiun avantaĝon vektoraj bildoj havas rilate al (mal-)grandigo?
  • Nomu norman daten-aranĝon por vektoraj bildoj.

Beispielfragen

  • Was wird in Vektorbildern kodiert?
  • Eignet sich die Vektorbildtechnik für die Kodierung realistischer Fotos?
  • Welchen Vorteil haben Vektorbilder bei Vergrößerung und Verkleinerung?
  • Nennen Sie ein Standardformat für Vektorbilder.