2017-01-12 4 views
0

Ich habe den Rich-Text in Bild konvertiert und als Blob in db gespeichert. Blob wird vom lokalen Server (WINDOWS) erstellt, aber auf dem Anwendungsserver (LINUX) bereitgestellt. Das Bildformat (Schriftart, Schärfe) wurde geändert. Ich bin mir nicht sicher, was ich zu tun habe. bitte werfen Sie etwas Licht. Hier ist Code, den ich benutzt habe.HTML-Text zu Bild und Speichern als Blob zu Datenbank

 BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);  
      Graphics graphics = image.createGraphics(); 
      JEditorPane jep = new JEditorPane("text/html", html); 
      jep.setSize(width, height); 
      jep.print(graphics); 
      ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
      ImageIO.write(image, "png", new File("C:\\Dev\\img8_TYPE_INT_RGB.png")); 
      ImageIO.write(image, "png", bos); 

Welches Bildformat eignet sich für Textinhalte?

Vielen Dank im Voraus.

Bild vom lokalen Server (WINDOWS)

enter image description here

Bild von Linux-Server (Anwendungsserver) (Linux)

enter image description here

+0

Sie geben zwei Bildformate an, JPEG zum Schreiben in eine (Windows-spezifische) Datei und GIF zum Schreiben in einen In-Memory-Stream. Was meinst du mit * "Das Bildformat (Schrift, Schärfe) wurde verändert" *? Es ist möglicherweise einfacher zu verstehen/zu visualisieren, wenn Sie einen direkten Vergleich mit Windows- und Linux-Ausgaben veröffentlichen. Wahrscheinlich hat sich die Schriftart/Antialias geändert, weil Sie eine Swing-Komponente ('JEditorPane') verwenden, die für Windows und Linux ein anderes" Look and Feel "hat (Gnome/KDE/was auch immer). Sie können das mit einem plattformübergreifenden Look and Feel umgehen. – haraldK

+0

Die Bilder, die ich hier kopiert habe, sind beide .png Typ 1 von der lokalen und einer von Server und verwendet BufferedImage.TYPE_INT_RGB .. Lassen Sie mich meinen Code bearbeiten. – Harish

+0

Wo war dein Text mit Schrift und Schärfe vorher gespeichert, wurde er auch in einem 'JEditorPane' angezeigt? – NESPowerGlove

Antwort

0

ich auch diesen Code verwendet haben, und haben immer noch die gleiches Problem.

BufferedImage image = new BufferedImage(width, height, 
         BufferedImage.TYPE_INT_RGB); 
Graphics2D graphics = image.createGraphics();    
graphics.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); 
graphics.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY); 
graphics.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_DISABLE); 
graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_OFF); 
graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); 
graphics.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE); 
JEditorPane jep = new JEditorPane("text/html", html); 
jep.setSize(width, height); 
jep.print(graphics); 
Verwandte Themen