Anzeige:
Ergebnis 1 bis 5 von 5

Thema: BufferedImage, ImageIO, Pixelige Schrift

  1. #1
    Registrierter Benutzer
    Registriert seit
    07.05.2003
    Beiträge
    127

    BufferedImage, ImageIO, Pixelige Schrift

    Hallo,
    ich versuche Plastikkarten zu bedrucken und da ich keinen Drucker hier stehen habe, speicher ich die Karten als png. Im Prinzip klappt das auch, aber mir ist nicht ganz klar, wie ich eine 85,6mm breite und 53,98mm hohe Karte in Pixel umrechne. Ich dachte, die Pixel würden von der Auflösung abhängen und habe daher die Millimeter in inch umgerechnet und mit der Auflösung des Druckers multipliziert (300dpi). Dann käme ich auf 1011 x 639 dots.
    Wenn ich diese Grafik speichere, ist die Schrift allerdings sehr Pixelig. Außerdem scheint die Grafik viel größer zu sein, als die 85x54mm. Setze ich die Größe herunter, zum Beispiel auf 202 x 128 dots, dann scheint das eher auf eine Karte zu passen, aber die Schrift ist halt überhaupt nicht lesbar. Die eingefügten Grafiken hingegen passen gut.
    Beispielgrafik (Ausschnitt):


    Was mache ich falsch?

    Danke,
    mamue

  2. #2
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825
    Schon mal probiert, Grafik und Schrift zu trennen?

    Die Schriften sehen in Linux/Sun JDK 6 eigentlich ganz passabel aus mit

    ((Graphics2D)g).setRenderingHint(RenderingHints.KE Y_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
    Font font=new Font("SansSerif",Font.BOLD,14);
    g.setFont(font);

    so long,
    BlueJay
    Eigentlich ganz einfach, wenn man's weiss!

  3. #3
    Registrierter Benutzer
    Registriert seit
    07.05.2003
    Beiträge
    127
    Zitat Zitat von BlueJay Beitrag anzeigen
    Schon mal probiert, Grafik und Schrift zu trennen?
    Nein - wie trennen? Ich male erst die Texte, danach die Grafiken. Da ich das entstandene Bild speichern möchte (eigentlich als tif, aber png tut's auch), male ich in ein BufferedImage.

    Zitat Zitat von BlueJay Beitrag anzeigen
    Die Schriften sehen in Linux/Sun JDK 6 eigentlich ganz passabel aus mit

    ((Graphics2D)g).setRenderingHint(RenderingHints.KE Y_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
    Font font=new Font("SansSerif",Font.BOLD,14);
    g.setFont(font);
    so long,
    BlueJay
    Bis gerade eben verwendete ich noch das JDK 1.5, es gibt aber keinen Grund, nicht umzusteigen. Mal sehen, ob's hülft.
    Ich danke Dir!

    mamue

  4. #4
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825
    Der Knackpunkt ist eigentlich die Graphics2D-Library, die schon was länger existiert.
    Und Linux mit NVidia-Treiber wird korrekt angesprochen. Zumindest ist die Schrift ohne Antialias sonst ein Horror.
    Eigentlich ganz einfach, wenn man's weiss!

  5. #5
    Registrierter Benutzer
    Registriert seit
    07.05.2003
    Beiträge
    127
    Danke. Antialiasing hilft tatsächlich, die Schrift schöner werden zu lassen. Noch schöner wird es, wenn man direkt auf den Drucker druckt, was nicht weiter verwundern dürfte.
    Ich hatte die Befürchtung, dass sich der Drucker (Kartendrucker Eltron P310) nicht von beliebigen Anwendungen aus ansteuern ließe. Die Sorge ist unbegründet, aber so ganz einfach war es nicht.
    Der Drucker bietet kein Querformat an, somit mußte ich die Grafik zu Fuß drehen (rotate Math.PI / 2). Spannend zu erfahren, dass dann nicht das nächste Element gedreht wird, sondern das Koordinatensystem. Ich male jetzt an Position X, was vorher Y war und zeichne dementsprechend an negative Y Werte. Interessant ist es, dass der Drucker nur einen kleinen Ausschnitt aus der Mitte druckt, wenn er als Standarddrucker eingestellt ist. Vermutlich liegt das an falschen Einstellungen (Querformat/Portait) in meinem Programm. Bei einem Standarddrucker, der DIN A4 beherrscht, klappt das, wenn ich danach im Dialog auf den Kartendrucker umschalte.
    Das ist hier für diesen Thread eigentlich nicht weiter interessant, aber vielleicht kommt hier ja mal jemand vorbei, der über Google auf diesen Beitrag stößt und Karten von Java aus drucken möchte.

    Danke nochmals,
    mamue

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •