Ich programmiere eine Bildbearbeitungsanwendung mit javafx für die GUI und möchte das verarbeitete Bild auf dem Bildschirm zeigen. Mein Programm behandelt das Bild als ein dreidimensionales Doppelarray wie double [3] [1080] [1920], also muss ich den Farbraum des Bildes verkleinern und die Doppel in Byte oder (wenn möglich) Kurzformen umwandeln, da die ImageView von javafx unterstützt keine Fließkommawerte oder 64 Bit für jede RGB-Komponente. Ich habe herausgefunden, dass Imageview nur Daten aus einer Datei oder einem Eingabestream laden kann, also muss ich ein BufferedImage erstellen, es mit den Convert-Daten aus dem Array füllen und den BufferedImage-Encode als JPEG, BMP, PNG oder GIF in einen Stream schreiben Lesen Sie diesen Stream mit dem Konstrukt javafx.scene.image.Image und übergeben Sie dieses Bild an ImageView. Eine grausame Art, ein Array in ein Bild zu konvertieren, wollte ich neueren in jedem Dateiformat codiert sein, aber ich fand keine Alternative zu diesem (außer javafx nicht verwenden).
Nun meine erste Frage:
Die setRGB-Methode von BufferedImage nimmt alle Farbkomponenten als int zusammen. Wie kann ich sie richtig kombinieren?
Und meine zweite Frage:
Ist der Andy Weg, mehr als 8 Bit für jede Komponente zu speichern?
Danke für jede Hilfe!Erstellen von javafx Bild von Datenarray
3
A
Antwort
1
Die WritableImage
stellt ein PixelFormat
in genau dieser Weise eine byte
Array Handhabung mittels PixelWriter
‚s setPixels
mit dem PixelFormat
Satz PixelFormat.getByteRgbInstance()
.
Verwandte Themen
- 1. JavaFX - Erstellen Sie benutzerdefinierte Schaltfläche mit Bild
- 2. javafx Bild von SQL-Server-Datenbank abrufen
- 3. Bild von FileChooser in JavaFX öffnen
- 4. Filterkern Datenarray Bereich durch Anordnung von Werten
- 5. Get Datenarray von Checkboxliste in jquery
- 6. schnelle Indizierung in Datenarray
- 7. Erstellen von Kreisen in javafx mit thread.sleep()
- 8. BufferedImage zu JavaFX Bild
- 9. JavaFX runnable jar Bild loading
- 10. Highcharts Serie Datenarray
- 11. ein Bild von CSS erstellen
- 12. rotierendes Bild in Javafx
- 13. Nicht zeigt Datenarray
- 14. JavaFX - So erstellen Sie SnapShot/Screenshot von (invisble) WebView
- 15. JavaFX FXML-SceneBuilder-Bild-resizable
- 16. Arbeiten am Erstellen von Bildergalerie in JavaFX. nicht in der Lage, Bild richtig anzuzeigen
- 17. javafx image von imageview entfernen
- 18. Kann Bild von ImageView in JavaFX nicht erhalten
- 19. jQuery Konvertieren von JSON-Datenarray in die verschachtelten Objekte
- 20. richtiges Datenarray zum Speichern mit dieser Art von Beziehung
- 21. JavaFX animation langsames bewegendes Bild
- 22. Masterseite (Bildschirm) auf JavaFX erstellen
- 23. Speichern beliebiger Daten im consExpr-Datenarray
- 24. einfache Stoppuhr erstellen - javaFX
- 25. Google Cloud Bild von Instanz erstellen
- 26. Erstellen von Textüberlagerung auf einem Bild
- 27. Bild von Ansicht/Bildschirm in Android erstellen
- 28. erstellen eine gepufferte Bild von RGB-Pixelwerte
- 29. PHP: Erstellen Bild von HTML-Tabelle
- 30. Bild von ArrayBuffer in Nodejs erstellen
Es ist nicht notwendig, über ein Dateiformat zu gehen. Sie können ein 'ImageView' erstellen und das' Image' direkt mit 'setImage (...)' setzen. Verwenden Sie [WritableImage] (http://docs.oracle.com/javase/image/WaritableImage.html) und [PixelWriter] (http://docs.oracle.com/javase/image/WitableImage.html). oracle.com/javase/8/javafx/api/javafx/scene/image/PixelWriter.html) um die Daten in das Bild zu bringen. –
Mit dem 'WritableImage' kann ich nicht nur Konvertierungen vermeiden, ich kann 'setPixels' mit' PixelFormat.getByteRgbInstance' verwenden, um Daten als 'byte' Array zu verarbeiten. Das hat sehr geholfen. Danke! – Niclas