Dovrei creare una copia di un immagine in Java, ma sull' oggetto BufferedImage manca il metodo clone, come rimedio?
Dovrei creare una copia di un immagine in Java, ma sull' oggetto BufferedImage manca il metodo clone, come rimedio?
jabjoint
Vero, non è "clonabile" nel senso del clone(). Ma si può comunque fare, è sufficiente usare il costruttore:
BufferedImage(ColorModel cm, WritableRaster raster, boolean isRasterPremultiplied, Hashtable<?,?> properties)
- il ColorModel si ottiene da bufImgOrig.getColorModel()
- il WritableRaster si ottiene da bufImgOrig.copyData(null) (il null serve per forzare la creazione di un nuovo WritableRaster)
- il isRasterPremultiplied si ottiene da bufImgOrig.isAlphaPremultiplied()
- properties può essere null ma, volendo, si possono anche clonare le proprietà.
Attenzione al fatto che il copyData(null) NON va sicuramente bene nel caso di "sub image", ovvero immagini che sono state staccate usando il getSubimage di BufferedImage.
Ultima modifica di andbin; 17-04-2023 a 10:22
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Grazie mille appena posso Provo.
jabjoint