Von Inkscape in Linux zu Windows, Änderung der Bitmap-Auflösung

Ich habe mit meinem persönlichen Laptop mit Ubuntu (14.04) und Inkscape eine Splashpage für eine App erstellt, an der ich bei der Arbeit arbeite. Wir verwenden bei der Arbeit einen Rahmen, der genaue Abmessungen erfordert, aber ich konnte diese Abmessungen anfangs nicht finden, also dachte ich, dass SVGs ideal für mich wären, um mein Bild zu behalten (im Gegensatz zur Verwendung von GIMP). Ich würde in ein PNG mit einem bestimmten exportieren Größe, als ich iterativ näher an das herankam, was ich wollte.

Ich habe bekannte funktionierende PNGs als Maßführung verwendet, und bei der Anzeige in MS Paint und Windows Photo Viewer sahen sowohl die Beispiele als auch mein PNG genau gleich groß aus und hatten die gleichen Eigenschaften in beiden Dimensionen und DPI (wie von Paint angegeben). .

Als ich jedoch mein PNG mit der App öffnete, wurde mein Bild ständig verpixelt und hässlich und um einen gewissen Prozentsatz (wahrscheinlich weniger als 10 %) über die sichtbaren Ränder der Leinwand hinaus erweitert.

Nachdem ich genug durch den Code gegraben hatte, fand ich die spezifischen Dimensionen (die eines meiner Beispiele auch hatte), die in xaml definiert sind, glaube ich, speziell gekennzeichnet als

http://schemas.microsoft.com/winfx/2006/xaml

aber ich weiß nicht viel über xaml, außer dass es anscheinend ein xml ist.

Ich habe mein Bild auf diese bestimmte Größe eingestellt, aber ich hatte immer noch das Pixelierungsproblem. Dann bemerkte ich, dass ich mit 90 DPI (Punkte pro Zoll) exportierte, aber Paint sagte, ich sei mit 96 DPI. Ich habe zuerst versucht, meine Export-DPI anzupassen, aber dann wurden meine Abmessungen größer. Als ich erkannte, dass das Problem in den PNG-Metadaten lag, habe ich versucht, es in der Befehlszeile mit anzugeben

inkscape image.svg -e image.png -d 96 -C -wXXX -hXXX

was mich sowohl die Breite als auch die Höhe in Pixeln sowie die DPI angeben lassen sollte. Aber das hat nicht funktioniert.

Ich habe schließlich eine Problemumgehung geschafft, indem ich mein SVG auf eine niedrigere Dimension eingestellt habe, die beim Erweitern von 90 auf 96 DPI beim Export die Dimensionen genau auf die im XAML erforderlichen erweitert hat.

Meine Frage ist, war meine Problemumgehung tatsächlich der richtige Weg, dies zu tun, gibt es eine Art Fehler in Inkscape, der dazu geführt hat, dass ich dies tun musste, sind die Metadaten irgendwie falsch angegeben, oder verwendet das xaml ( vielleicht veraltet) Metadaten, die die anderen Anwendungen in Windows ignoriert haben?

Antworten (1)

Wenn Inkscape in Bitmap-Formate exportiert, wird standardmäßig die volle Größe mit 90 dpi gerastert. Wenn Sie Inkscape bitten, die Pixelabmessungen Ihres Exports zu erhöhen, wird auch die dpi-Einstellung erhöht.

Wenn Sie Ihr SVG mit einer bestimmten Pixelgröße exportieren möchten, sollten Sie Ihr Bildmaterial vor dem Exportieren auf diese Größe skalieren.

Dies ist kein Inkscape-Fehler, scheint jedoch eine Einschränkung zu sein, wenn Sie es gewohnt sind, aus anderen Illustrations-Apps zu exportieren, in denen Sie sowohl die Abmessungen als auch dpi angeben können.

Ich kann die XAML-Teile der Frage nicht kommentieren, aber ich denke, wenn Sie sich sicher sind, dass Inkscape eine Standard-Exportauflösung von 90 dpi hat, werden alle anderen Probleme wegfallen.

Ja, es scheint, dass Pixel/Bildabmessungen beim Export an die DPI gebunden werden, was bedeutet, dass Sie die Größe vorausplanen müssen. Aber warum hatten Paint und Picture Viewer damit kein Problem?
Wenn Sie ein Beispiel-Svg zweimal exportieren, einmal mit 90 dpi und das andere mit 180 dpi, öffnen Sie beide in zB Gimp, Sie werden sehen, dass die "Druckabmessungen" gleich sind. Ich würde vermuten, dass Paint diese Dimensionen verwendet. Es gibt mehr Informationen in der 180-dpi-Version, aber dies kann als "mehr Auflösung" für eine bestimmte dimensionale Größe oder eine größere dimensionale Größe bei derselben Auflösung ausgedrückt werden. Meine Antwort geht davon aus, dass Sie ab "Erkennen des Problems in den PNG-Metadaten ..." auf dem falschen Weg sind und das Problem übermäßig verkomplizieren. [Aber ich habe mich schon mal geirrt ;-)]