Come potrei fare per scrivere un'immagine javafx.scene.image.Image in un file. So che puoi usare ImageIO su BufferedImages ma esiste un modo per farlo con un'immagine javafx?Scrivere javafx.scene.image.Image su file?
11
A
risposta
2
quasi 3 anni più tardi e ora ho le conoscenze per farlo e rispondi a questa. Sì, la risposta originale era valida, ma prima era necessario convertire l'immagine in BufferedImage e io volevo idealmente evitare lo swing completamente. Mentre questo fa uscire la versione RGBA raw dell'immagine è abbastanza buona per quello che dovevo fare. In realtà, potrei semplicemente usare BGRA raw da quando stavo scrivendo il software per aprire il risultato, ma dato che gimp non può aprirlo, credo che lo convertirò in RGBA.
Image img = new Image("file:test.png");
int width = (int) img.getWidth();
int height = (int) img.getHeight();
PixelReader reader = img.getPixelReader();
byte[] buffer = new byte[width * height * 4];
WritablePixelFormat<ByteBuffer> format = PixelFormat.getByteBgraInstance();
reader.getPixels(0, 0, width, height, format, buffer, 0, width * 4);
try {
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("test.data"));
for(int count = 0; count < buffer.length; count += 4) {
out.write(buffer[count + 2]);
out.write(buffer[count + 1]);
out.write(buffer[count]);
out.write(buffer[count + 3]);
}
out.flush();
out.close();
} catch(IOException e) {
e.printStackTrace();
}
16
Basta convertirlo in un BufferedImage
prima, utilizzando javafx.embed.swing.SwingFXUtils
:
Image image = ... ; // javafx.scene.image.Image
String format = ... ;
File file = ... ;
ImageIO.write(SwingFXUtils.fromFXImage(image, null), format, file);
Problemi correlati
- 1. Dove cerca javafx.scene.image.Image ("flower.png") per flower.png?
- 2. Python, scrivere in memoria zip su file
- 3. Come scrivere in sicurezza su un file?
- 4. Come scrivere stdout su file con colori?
- 5. Come scrivere std :: string su file?
- 6. PhoneGap - Impossibile scrivere su file per Android
- 7. Possiamo scrivere un Hashtable su un file?
- 8. Come scrivere un file su Kafka Producer
- 9. Come scrivere un flusso su file?
- 10. Come scrivere su un file in Kotlin?
- 11. Caricamento file WebAPI - Senza scrivere file su disco
- 12. File Java - Aprire un file e scrivere su di esso
- 13. PhantomJS/Javascript: scrivere su file anziché su console
- 14. XmlWriter da scrivere su una stringa anziché su un file
- 15. JavaFX: il modo più veloce per scrivere pixel su PixelWriter
- 16. Eccezioni scrivere sul file
- 17. Ruby come scrivere su Tempfile
- 18. ios scrivere su disco su sfondo filo
- 19. scrivere righe su PDF
- 20. Come scrivere su un file usando IO non bloccanti?
- 21. Come scrivere JSON Array su file utilizzando jackson
- 22. come scrivere su file quando usi gulp e mocha?
- 23. Usa Python per scrivere su colonne specifiche nel file csv
- 24. Come utilizzare NIO per scrivere InputStream su File?
- 25. Il modo più leggibile per scrivere una ZipEntry su File?
- 26. Come scrivere efficientemente su file da datareader SQL in C#?
- 27. Leggere e scrivere su un file mantenendo il blocco
- 28. scrivere un BitSet su un file in java
- 29. Come scrivere file * .pc per pkg-config su Windows?
- 30. Come creare e scrivere su file mappati in memoria?
Cosa rappresenta il numero magico '4'? – Cypher
@Cypher Ogni valore di colore è 0-255 (1 byte) e ne hai 4 per pixel: blu, verde, rosso e alfa (trasparente) – Scoopta