eps und Maßtreue

Wie mache ich es, daß aus RagTime exportierte epsf-Dateien die
Ursprungsmaße einhalten, sobald sie mit GraphicConverter von eps zu
Pixelgraphik gewandelt werden?
Bisher erhalte ich eine um den Faktor 1/6% (=16,66) zu große
Pixelfläche.

Für das Vektorisieren von Schwarzweißflächen möchte ich
Referenzbilder herstellen. Dabei soll ich vorher wissen, welche
Kanten wie viele Pixel lang sind.

In RagTime 6/6.5 stellte ich mir deshalb die Maßeinheit/das Lineal
auf Pixel (px), indem die vorgefundene Einheit mm in Pixel umgeklappt
wurde. Lineal sichtbar. Doppelklick auf das Lineal zeigt
Grobteilungsweite 100 Pixel, Rasterpunkte pro Grobteilung 1 Pixel,
Linie alle 1 Rasterpunkte.

Dann zeichne ich mein Schweizer Kreuz mit 100 Pixel Kantenlänge als
Bezierkurve (die Gitterlinien in der Zeichnungskomponente umranden
sozusagen mein Schweizer Kreuz). Mein Bezierobjekt hat eine
transparente Linie mit der Dicke 0. Alles bestens. Ich exportiere die
Auswahl (mein schwarzes Schweizer Kreuz) als epsf.

Die Exportdatei Kreuz.eps öffne ich mit GraphicConverter und erwarte
ein Bild, das 300 x 300 px groß sein müßte. Ich erhalte aber 5016 x
5016 px. Die Auflösung wird mit 1200 dpi angegeben. Lasse ich GC die
umrechnen in 72 dpi, erhalte ich die gewünschten Maße (fast).

Hier noch aus der eps-Datei die Zeile, in der Meine-Schweizer-Kreuz-
Maße abzulesen sind:
%%EndProlog
%%BeginSetup
beDict begin
1. -1. scale 0. -301. :T
oMtx currentmatrix pop
%%EndSetup
true setoverprint
0. g
dlw /dlw gdhlw def
np
100. 100. :M
100. 0. :L
200. 0. :L
200. 100. :L
300. 100. :L
300. 200. :L
200. 200. :L
200. 300. :L
100. 300. :L
100. 200. :L
0. 200. :L
0. 100.003 :L
100. 100. :L
:K
eofill
/dlw xdf
true setoverprint
0. g
0.25 slw
0 setlinecap
0 setlinejoin
2. setmiterlimit
np
100. 100. :M
100. 0. :L
200. 0. :L
200. 100. :L
300. 100. :L
300. 200. :L
200. 200. :L
200. 300. :L
100. 300. :L
100. 200. :L
0. 200. :L
0. 100.003 :L
100. 100. :L
:K
stroke
showpage
%%Trailer
end
%%EOF
II*

Vielleicht hat jemand einen guten Gedanken.

Beste Grüße,
Norbert Lindenthal

Re: eps und Maßtreue

#8311 On 14 Januar, 2009 16:59 Stephan Will said,

Hallo Norbert,

Am Wed Jan 14 2009 16:18:05 GMT+0100 schrieb Norbert Lindenthal
:
> Wie mache ich es, daß aus RagTime exportierte epsf-Dateien die
> Ursprungsmaße einhalten, sobald sie mit GraphicConverter von eps zu
> Pixelgraphik gewandelt werden?

welche "Ursprungsmaße" meinst Du?

[...]
> In RagTime 6/6.5 stellte ich mir deshalb die Maßeinheit/das Lineal auf
> Pixel (px), indem die vorgefundene Einheit mm in Pixel umgeklappt wurde.

Was soll das nützen?

Wieviele Pixel Dein RT-Objekt nachher wirklich hat, kannst Du so nicht
feststellen (wie Du ja bereits gemerkt hast).
Dafür mußt Du nämlich die zugrunde liegende Auflösung PPI festlegen.
Erst dann kann Dir das Lineal helfen.

> Dann zeichne ich mein Schweizer Kreuz mit 100 Pixel Kantenlänge als
> Bezierkurve (die Gitterlinien in der Zeichnungskomponente umranden
> sozusagen mein Schweizer Kreuz). Mein Bezierobjekt hat eine transparente
> Linie mit der Dicke 0. Alles bestens. Ich exportiere die Auswahl (mein
> schwarzes Schweizer Kreuz) als epsf.
>
> Die Exportdatei Kreuz.eps öffne ich mit GraphicConverter und erwarte ein
> Bild, das 300 x 300 px groß sein müßte.

Warum erwartest Du 300 x 300px?
Bietet GC Dir nicht eine Import-Dialog an?

> Ich erhalte aber 5016 x 5016 px.
> Die Auflösung wird mit 1200 dpi angegeben. Lasse ich GC die umrechnen in
> 72 dpi, erhalte ich die gewünschten Maße (fast).

Das ist eben das Problem.
Im EPS ist keine Angabe zur Auflösung PPI enthalten.
Wie auch, es ist schließlich ein Vektor-Datenformat, das mit Vektordaten
gefüllt ist.

[...]
> Vielleicht hat jemand einen guten Gedanken.

Nutze eine pixel-basierte Software.

Oder berechne mal genau, was Du in RT an Größe anlegen mußt, damit GC
Dir die gewünschten Maße liefert.

Grüße
Stephan

Re: eps und Maßtreue

#8314 On 14 Januar, 2009 18:24 Norbert Lindenthal said,

Stefan, danke für die schnelle Antwort,

angestrebter Nutzen:
Ich brauche Referenzbilder, um Richtstreckenprogramme ausprobieren zu
können. Richtstreckenprogramme (StreamLine 4, Inkscape, ScanFont)
machen aus randscharfen Graustufenbildern (tif) Vektordateien (eps,
pdf, svg). Dabei soll idealerweise meine Ausgangsgraphik aus RagTime
(die ja Richtstreckengraphik ist, in meinem Fall genau Bezierkurve)
über den Umweg Pixelbild wieder zu Richtstreckengraphik werden. Adobe
StreamLine 4 (Mac OS 9), Inkscape (X11) oder ScanFont 5 sind mir
dafür bekannt.

Meine erste Referenz-Graphik soll ein Schweizer Kreuz (Plus-Kreuz)
werden mit 100 Pixel Kantenlänge. Länge über alles also 3 x 100 Pixel
= 300 Pixel. Das wird in der EPS-Datei ja auch schön gezeigt, daß
diese Maße gegeben wurden. Als Scale wird 301 angegeben (Warum 301?).

Verkleinere ich innerhalb RagTime die Zeichnung auf 6%, wird in der
eps-Datei Scale mit 18,9 angegeben. Und dann macht GC auch ein
ungefähr 300 x 300 Pixel großes Bild daraus (allerdings mit
Randfehlern in Grautönen).

Warum werden aus den Vektormaßen 100 Pixel von GraphicConverter nicht
Bildpunkte 100 Pixel gemacht?

Mit Ursprungsmaße meine ich meine 100 Pixel Kantenlänge, wobei für
das RT-Dokument eine Grundeinstellung von 72 dpi für die Darstellung
eingestellt ist.

Das RagTime-Lineal zeigt sich sofort mit den erwarteten 72 Pixel auf
1 Zoll. Deshalb nahm ich an, daß bei meinen 100 Pixel auch 100 Pixel
eps-mäßig gemeint sind, was die eps-Datei im Texteditor ja auch
aufweist.

Importdialog in GraphicConverter:
Danke für Deine Frage, Stephan.
Ich schaute daraufhin in den GC-Einstellungen. Und dort liegt
tatsächlich die Lösung meiner Frage bei den Bildformaten:
Unter epsf ist die Auflösung einstellbar. Hier standen meine
beanstandeten 1200 dpi.

Lösung:
Stelle ich in GC bei EPSF die Auflösung auf 72 dpi, dann bekomme ich
das erwartete Ergebnis, das ich als richtig einschätze.

Perfekt!
RagTime ist ein Klasse-Programm. Danke an Stephan, ein Klasse-Berater
und -Fragensteller.

Beste Grüße,
Norbert Lindenthal

Am 14.01.2009 um 16.59:51 schrieb Stephan Will:

> …

> Warum erwartest Du 300 x 300px?
> Bietet GC Dir nicht eine Import-Dialog an?

Re: eps und Maßtreue

#8315 On 14 Januar, 2009 20:17 Thomas Kaegi said,

Hallo Norbert

Nebenbemerkung: Ein Schweizer Kreuz gibt das nicht, wenn du quasi 5 Quadrate zusammenfügst, indem alle Kanten deines Kreuzes je 100 Pixel lang sind. Das Verhältnis von Länge und Breite der Arme des Schweizer Kreuzes ist genormt mit 7:6.

Gruss aus CH
Thomas

Re: eps und Maßtreue

#8320 On 15 Januar, 2009 10:24 Stephan Will said,

Hallo Norbert,

freut mich, daß die Fragerei geholfen hat. :-)

Am Wed Jan 14 2009 18:24:25 GMT+0100 schrieb Norbert Lindenthal
:
[...]
> Meine erste Referenz-Graphik soll ein Schweizer Kreuz (Plus-Kreuz)
> werden mit 100 Pixel Kantenlänge. Länge über alles also 3 x 100 Pixel =
> 300 Pixel. Das wird in der EPS-Datei ja auch schön gezeigt, daß diese
> Maße gegeben wurden. Als Scale wird 301 angegeben (Warum 301?).

weil PS/EPS intern mit Punkt rechnet und daher Rundungsdifferenzen
auftreten.

[...]
> Warum werden aus den Vektormaßen 100 Pixel von GraphicConverter nicht
> Bildpunkte 100 Pixel gemacht?

Weil 100 Vektor-"Pixel" in einer Vektordatei nicht 100 Bitmap-Pixel
ergeben müssen.
Erst GC macht aus den Vektordaten Bitmapdaten auf Pixel-Basis und
das unter Berücksichtigung einer gegebenen Auflösung.

> Mit Ursprungsmaße meine ich meine 100 Pixel Kantenlänge, wobei für das
> RT-Dokument eine Grundeinstellung von 72 dpi für die Darstellung
> eingestellt ist.

Diese RT-Angaben sind nur zur Darstellung am Monitor/Lineal relevant, da
Du anschließend Vektordaten in das EPS schreibst.

> Das RagTime-Lineal zeigt sich sofort mit den erwarteten 72 Pixel auf 1
> Zoll. Deshalb nahm ich an, daß bei meinen 100 Pixel auch 100 Pixel
> eps-mäßig gemeint sind, was die eps-Datei im Texteditor ja auch aufweist.

Aber nur als Kommentar, der von GC offensichtlich nicht berücksichtigt wird.

> Importdialog in GraphicConverter:
> Danke für Deine Frage, Stephan.
> Ich schaute daraufhin in den GC-Einstellungen. Und dort liegt
> tatsächlich die Lösung meiner Frage bei den Bildformaten:
> Unter epsf ist die Auflösung einstellbar. Hier standen meine
> beanstandeten 1200 dpi.
>
> Lösung:
> Stelle ich in GC bei EPSF die Auflösung auf 72 dpi, dann bekomme ich das
> erwartete Ergebnis, das ich als richtig einschätze.

Und damit weiß GC jetzt, wie die Vektordaten "aufgelöst" werden sollen.

Gruß
Stephan