Grafik Grundlagen / Grafikformate |
Startseite > Tipps & Tricks > Grafik-Grundlagen / Grafikformate |
Die folgenden zwei Texte stammen von Rainer B. und sind dem InfoBase-Forum entnommen. Wie speichert PC/GEOS Bilder?Eigentlich ist es ganz einfach, PC/GEOS kennt eigentlich nur genau vier Formate, Bilder (wir reden von Fotos, Screenshots usw.) abzuspeichern, nämlich:Schwarz/Weiss (1Bit/Pixel), 16 Farben (4 Bit/Pixel), 256 Farben (8Bit/Pixel) und Echtfarben (True Color, 14 Bit/Pixel). Jede dieser Varianten kann 'normal' oder 'komprimiert' sein, sowie bei Bedarf eine 'Maske' haben, also teilweise transparent sein. S/W, 16-Farb und 256-Farb-Bilder können ausserdem noch eine Palette haben, die angibt welche Farben aus dem riesigen Farbspektum verwendet werden sollen. Aber das ändert nichts daran, dass es nur 4 Formate sind. Man kann sogar sagen, es ist eigentlich nur genau ein Format, das aber für vier verschiedene Farbtiefen definiert ist. Beide Standpunkte sind berechtigt. Wie man leicht sehen kann, hängt die Größe eines Bildes mit vorgegeben Maßen also ausschließlich davon ab, in welchem Format es unter PC/GEOS vorliegt - sprich mit welcher Farbtiefe es vorliegt. Ein Screendump liegt automatisch immer in dem Format vor, das dem aktuell eingestellten Bildschirmmodus entspricht.
Was passiert beim Import von Bildern?Ebenfalls ganz einfach: Die Bildinformationen werden von der Platte gelesen und dabei in das passende PC/GEOS-Format umgewandelt. Diese Aufgabe übernimmt ein Programmteil, der 'Importfilter' heißt. Daraus folgt zweierlei:
Nein, es stimmt also nicht. PC/GEOS wandelt die Bildaten IMMER in sein eigenes Format um. Ob man also einen Screenshot als 16-Farb-PCX abspeichert oder als 16-Farb-GIF und anschließend wieder einliest, macht keinen Unterschied, auch dann nicht, wenn das GIF auf der Platte kleiner ist als das PCX. Was aber einen Unterschied macht (machen kann), ist, welchen Importfilter man verwendet. Und da hat man aktuell genau zwei Möglichkeiten. Den vom PC/GEOS-System (Geodraw: Grafik importieren) und den von Gonzo. Und diese beiden Filter sind offensichtlich mit verschiedenen Zielsetzungen programmiert worden:
Was kann Sigma?Sigma steht für Simple Grafik Manipulation Tool und ist in der Lage, ganz bewusst bestimmte PC/GEOS-Grafik-Formate zu erzeugen. Man hat also Kontrolle darüber, wie groß die Write-Datei später werden soll. Sigma habe ich für mich selber als Werkzeug programmiert, entsprechend ist die Benutzung nicht so ausgefeilt. Außerdem habe ich den 16-Farb-Modus nicht benötigt, folglich kann Sigma kein 16-Farb-Bilder erzeugen (ein Manko, dass ich mit Blick auf die aktuelle Diskussion vielleicht beheben sollte). Der Haupteinsatzzweck in der jetzigen Form ist für mich persönlich:
Hallo Leute, es scheint hier doch einige Verwirrung um dpi, Pixel, Grafikdateiformate und Grafikspeicherung zu geben. Daher hier mal die Sicht eines Programmierers - und damit die Sicht des Computers - auf diese Dinge. Ich bin mir dabei bewusst, dass ein Fotograf oder Künstler einige der Dinge aus einem anderen Blickwinkel heraus sieht, aber wenn man verstehen will, warum beim Arbeiten mit Grafiken am Computer dies oder das (nicht..) passiert, dann muss man verstehen, was die Rechenmaschine tut. Auch wenn es teilweise trivial ist, ich mache es vollständig, um eventuellen Missverständnissen aus dem Weg zu gehen. 1. Grafikformat im Sinne von GrafikdateiformatDas ist die Art und Weise, wie die Grafikdaten auf der Festplatte liegen. Z.B. 8 oder 24 Bit pro Pixel(= 256 Farben oder TrueColor), von oben nach unten (z.B. PCX) oder von unten nach oben (z.B.BMP), Zeilenweise in der Form rot/grün/blau - rot/grün/blau usw (BMP) oder erst alle roten, dann die blauen und zum Schluss die grünen Pixel (PCX), mit oder ohne Kompression und dergleichen mehr. Das wichtige dabei ist:
Tipp von msgeo: Abspeichern im Hintergrund-Format verringert die Datengröße, weil Jens-Michael die Kompression aktiviert hat.
2. GrafikimportDarunter versteht man den Prozess, ein extern auf der Platte rumliegendes Bild in das PC/GEOS-Interne Format umzuwandeln. Das machen spezielle 'Importfiler', bei Gonzo sind das die Grafik-Libraries.alexZOP: Es ist also egal, aus welchem Dateiformat du die Grafiken nach PC/GEOS importierst, die Datengröße in PC/GEOS ist immer gleich. Es ist eben so wie es ist und ein Bild wird nicht 'kleiner' nur weil es in GeoWrite integriert wird. Das mit der Grafikebene ist wohl in etwa so, dass dort Grafiken aller Art einfach 'auf dem Textblatt angeheftet werden'. Rainer: Beides richtig. Jörg: Viele JPEG-/BMP-/Tiff-Bilder lassen sich relativ problemlos mit DOS-/Windows-/Linuxprogrammen in ein 256-Farbenbild umwandeln (z.B. ins GIF-Format). Das spart Speicherplatz im Dokument. Rainer: Missverständlich. GIF spart nur Platz gegenüber z.B. PCX, nicht mehr nachdem es in PC/GEOS importiert ist. Sparen tut die Reduktion von TrueColor auf 256 Farben - in welchem Format du das zwischenspeicherst oder ob du es gleich in PC/GEOS machst (mit Sigma), ist wurscht.
3. Grafikgröße (Pixel, Speicherbedarf)Für den Computer gibt es nur eine sinnvolle Einheit: Pixel.Jede Grafik (Foto...) stellt für den Computer eine rechteckige Anordnung von Bildpunkten (Picture Elements - Pixel) dar. Nicht mehr und nicht weniger. Für jeden Bildpunkt wird nun eine bestimmte Menge Speicher benötigt. Bei Schwarz-Weiss-Grafiken ein Bit, bei 256-Farbgrafiken 1 Byte und bei TrueColor-Grafiken 3 Byte. Ein 800x600 Pixel großes Foto benötigt also 800x600x3 Byte = 1,44 Megabyte. Nicht mehr und nicht weniger. Eine gleich große Schwarz-Weiss-Grafik benötigt nur 800x600/8 = 60 kByte, als 256-Farbgrafik brauchst du 800x600x1 Byte = 480 kByte. Da Bilder oft redundante Informationen enthalten, kann man versuchen, sie zu komprimieren. Bei Schreenshots und Scans von Texten ( --> @msgeo) geht das ganz gut, bei richtigen Fotos ist das eher aussichtslos. Im Extremfall wird die Datenmenge sogar noch vergrößert.
4. Grafikgröße (dpi)Was der Computer bisher nicht weiß: Wie groß soll das Bild auf dem Papier werden? Also in cm (oder wie unsere amerikanischen Freunde sagen: in Inch) Deswegen kann man jedem Bild noch eine 'Auflösung' in dpi (dot per inch = Bildpunkte pro Zoll) zuordnen. Das PC/GEOS-interne Format kann damit umgehen, einige Dateiformate auch, andere nicht (die kennen nur Pixel).Der Computer steht jetzt vor der Aufgabe, das Bild auf dem Bildschirm und auf dem Papier in 'gleicher Größe' erscheinen zu lassen, auch dann, wenn es gar keine dpi-Informationen hat. Die Lösung ist, dem Bildschirm eine 'Auflösung' von 72 dpi zuzuordnen. Bilder mit 72 dpi werden also so dargestellt, dass jeder Bildpunkt des Bildschirms ein Pixel des Bildes bekommt. Damit hat man die optimale Darstellung. Genau aus diesem Grund importiert GONZO alle Bilder mit 72 dpi. Gonzo ist eine Grafik-BETRACHTER.
5. Richtige Bildgröße und dpiEin Bild mit 320x200 Pixeln mit 72 dpi ist also auf dem Schirm (beim einfügen in GeoWrite) 11,3 cm breit. Was passiert, wenn man das ganze auf einem Drucker mit 300 dpi ausdruckt? Ganz einfach: GEOS nutzt für jedes Pixel des Bildes 300/72 = 4,16 Pixel des Druckers. Damit ist das Bild auch auf dem Drucker 11,3 cm breit. Eine A4-Seite ist 20 cm = 7,87 Zoll breit. Bei 72 dpi sind das 566 Pixel. Unser 800x600 Foto von oben ist aber 800 Pixel breit und ragt deshalb bei 72 dpi zunächst über die A4 Seite hinaus, da es 800/72 = 11,1 Zoll = 28,2 cm breit ist. Das sind 28,4 Pixel (800/28,2 = 28,4) auf jeden Zentimeter. Drucke ich es jetzt, passt es nicht auf die Seite.Und nun beginnen die Probleme. Der PC/GEOS-User (und jeder normale Mensch) fasst das Foto mit der Maus an einer Ecke und zoomt es solange, bis es auf die Seite passt. Nehmen wir an, wir haben es um den Faktor 2 verkleinert. Damit ist es zwar immer noch 800 Pixel, aber nur noch 14,1 cm breit. Das sind schon 56,7 Pixel auf jeden Zentimeter bzw. auf amiländisch: 144 Pixel pro Zoll (dpi). Das Bild hat aber noch immer eine 'Auflösung' von 72 dpi (so steht es in den Bilddaten im Speicher), aber zusätzlich einen 'Skalierungsfaktor' von 0,5. Drucke ich das Bild jetzt auf einem 300 dpi-Drucker aus, muss ich jedem Pixel des Bildes nur noch 2 Punkte des Druckers zuordnen. Zum Glück macht PC/GEOS das für mich.
Zwischen-Fazit für mich als Programmierer:Die Angabe in dpi ist eigentlich überflüssig. Denn manuelle Vergrößerung / Verkleinerung und Änderung der 'Auflösung' in dpi sind zwei verschiedene Methoden, die das Gleiche zu erreichen: Das Bild auf dem Papier in die von mir gewünschte Größe zu bringen. Beide Werte ändern die Anzahl der zum Speichern des Bildes benötigten Bytes nicht, aber sie ändern, wie groß das Bild auf dem Papier (bzw. auf dem Schirm) wird.Anmerkung: Ich habe nicht gesagt, dass dpi-Werte an sich sinnlos sind, aber für einen Programmierer machen sie bloß zusätzlich Arbeit.
6. Computer und dpiNun kommen aber die Fotografen und andere nicht-Computer-Leute daher und beharren auf ihren dpi-Werten. Sie wollen ein 6,8x5,1 cm großes Bild mit - sagen wir - 300 dpi einscannen. Und sie wollen, dass das Bild nach dem Einkleben in GeoWrite auch sofort 6,8x5,1 cm groß ist. Das ist ein sehr vernünftiger Wunsch, die Konsequenzen führen aber immer wieder zu Problemen im Verständnis.6,8x5,1 cm mit 300 dpi sind nämlich 800x600 Pixel (1 Zoll=2,54cm, 6,8cm=2,68Zoll). Wie oben beschrieben, wäre das Bild dann 'eigentlich' 28,2 cm breit. Die Lösung: Ich ordne dem Bild jetzt 300 dpi zu, anstelle 72. Damit stellt PC/GEOS das Bild gleich im richtigen Maßstab verkleinert dar und es wird 6,8 cm breit. Auf dem Bildschirm werden nun immer 4 Pixel des Bildes einem Bildschirmpunkt zugeordnet (eigentlich sind es 16, wenn man die y-Richtung mit berücksichtigt), auf dem 300 dpi-Drucker aber jedem Druckerpunkt genau ein Pixel des Bildes. So weit so gut, nur 800x600x3 Byte sind eben schlappe 1,44 Megabyte. Und die musst du im Dokument gespeichert haben.
7. Wie reduziert man die Datenmenge?
Rainer
|
Zum Anfang der Seite Mit Edith zuletzt bearbeitet am 24.02.25 / Mütze |