Ho un'immagine. Ho bisogno di fare una copia esatta di esso e salvarlo in BufferedImage, ma non c'è Image.clone(). La cosa dovrebbe essere all'interno di un ciclo di calcolo e quindi dovrebbe essere molto veloce, nessuna copia pixel-per-pixel. Qual è il migliore metodo di perfomance per fare questo?Come clonare l'immagine?
risposta
È possibile disegnare su un'immagine bufferizzata, quindi creare un vuoto bufferedImage, creare un contesto grafico da esso e disegnare l'immagine originale su di esso.
BufferedImage copyOfImage =
new BufferedImage(widthOfImage, heightOfImage, BufferedImage.TYPE_INT_RGB);
Graphics g = copyOfImage.createGraphics();
g.drawImage(originalImage, 0, 0, null);
c'è un altro modo:
BufferedImage copyOfImage = image.getSubimage(0, 0, image.getWidth, image.getHeight);
No, questo non funzionerà, dato che 'copyOfImage' e' image' condivideranno i buffer di backup (sarà una copia superficiale). Le modifiche fatte a una, si rifletteranno nell'altra. – haraldK
Image clone = original.getScaledInstance(original.getWidth(), -1, Image.SCALE_DEFAULT);
Questo potrebbe non essere molto bella, ma getScaledInstance
rendimenti, come suggerisce il nome, un'istanza della Image
dell'oggetto originale. Solitamente utilizzato solo per il ridimensionamento. -1
indica il metodo per mantenere le proporzioni come è
Potresti per favore [modificare] la tua risposta per dare una spiegazione del perché questo codice risponde alla domanda? Le risposte al solo codice sono [scoraggiate] (http://meta.stackexchange.com/questions/148272), perché non insegnano la soluzione. – DavidPostill
- 1. Come clonare Joda DateTime?
- 2. Come clonare ImageData?
- 3. Come clonare() StringBuilder
- 4. Come clonare un wiki GitHub?
- 5. Come clonare una collezione backbone
- 6. Come clonare come oggetto derivato in C++
- 7. Puoi clonare snippet GitLab?
- 8. Puoi clonare una chiusura?
- 9. Come si fa a clonare un BufferedImage
- 10. Git: come clonare il primo commit?
- 11. Come clonare (e ripristinare) una sottostruttura DOM
- 12. Come clonare i modelli in Backbone
- 13. Come clonare JQuery() e modificare l'id
- 14. Come clonare un'area di lavoro di Eclipse
- 15. Come faccio a clonare un database OpenLDAP
- 16. Come clonare un profilo WebSphere 8
- 17. Come clonare repository git su redmine?
- 18. Come clonare selettivamente un repository git
- 19. Come posso clonare un repository privato Gitlab?
- 20. Come clonare un'istanza di classe JavaScript?
- 21. Come clonare UIElement in WinRT XAML C#?
- 22. TortoiseGit come clonare una struttura di cartelle
- 23. Come clonare un oggetto Date in JavaScript
- 24. Come clonare un array multidimensionale in java?
- 25. come clonare un oggetto in Android?
- 26. come clonare un progetto su heroku
- 27. Come clonare un oggetto generatore Python?
- 28. Come clonare un oggetto in Flex?
- 29. Come clonare il ramo con git-p4?
- 30. Come clonare() un elemento n volte?
Dai un'occhiata a questo http://stackoverflow.com/questions/3514158/how-do-you-clone-a-bufferedimage – user219882
Copia immagine pixel-di -pixel (copia solo i dati raster). C'è un modo per farlo più velocemente? – Cenius
Se vuoi una copia profonda, non c'è altro modo di cui io sappia. E perché vuoi clonarlo ogni ciclo iterativo? – user219882