2017-02-12 2 views
0

Es gibt ungefähr 100 JPEG & png Farbbilder in unserer JavaFX-gebauten Desktop-App, die, wenn das Fenster in der Größe geändert wird, gestreckt und verschwommen, so würde ich gerne alle Grafiken haben in einem Format neu erstellt, das eine dynamische Größenänderung ohne Qualitätsverlust ermöglicht. Welches Bildformat oder Verfahren sollte dazu verwendet werden?Welche Bildformate können in JavaFX geändert werden?

Derzeit ist jedes Bild einfach in einer Image und in der Größe wie folgt, aber ich bin offen für andere Vorschläge:

if(isSmall){ 
    Rectangle2D visualBounds = Screen.getPrimary().getVisualBounds(); 
    double sh = visualBounds.getHeight(); 
    Scale scale = new Scale(sh, sh, 0, 0); 
    root.getTransforms().setAll(scale); 
} 

Antwort

1

Wie bereits erwähnt wurde SVG ist wahrscheinlich der Weg für Sie. JavaFX unterstützt SVG nicht direkt, aber Sie können hier Unterstützung finden javafxsvg und hier svg-to-fxml-converter zum Beispiel.

+0

Danke. Ich werde entweder diese Bibliothek verwenden oder auf Java 9 warten, um Bilder mit mehreren Auflösungen bereitzustellen. – corpico

0

Sie nicht ein Bild der Größe verändern kann größer zu sein, als es ohne sie ist immer verschwommen für die gängigsten Formate. Stellen Sie stattdessen sicher, dass Ihre Bilder groß genug sind, sodass Sie sie nur verkleinern müssen.

Das einzige Format, von dem ich je gehört habe, dass es weiter hochskalieren könnte, war Fraktalkompression, aber AFAIK ist nicht üblich.

+0

Meinst du, Sie können ein Bild nicht in der Größe ändern ... in JavaFX? Es gibt Bildformate, die ohne Qualitätsverlust vergrößert werden können (z. B. Vektorgrafiken). Ich würde gerne wissen, was andere in meiner Situation tun. – corpico

+0

Sicher, Vektoren können Sie die Größe ändern, aber Sie haben JPEG und PNG erwähnt. Vielleicht möchten Sie SVG-Dateien ausprobieren. – john16384

+0

Richtig, ich sollte klarstellen. Ich möchte alle Grafiken in einem neuen Format wiederherstellen lassen und suche nach Vorschlägen/möchte sicherstellen, dass sie mit JavaFX arbeiten. – corpico

Verwandte Themen