import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.IndexColorModel; import java.awt.image.WritableRaster; import java.io.*; import java.util.Hashtable; public class BufferedImageWrapper implements Serializable { public BufferedImage image; public BufferedImageWrapper(int width, int height, int imageType) { image = new BufferedImage(width, height, imageType); } public BufferedImageWrapper(int width, int height, int imageType, IndexColorModel cm) { image = new BufferedImage(width, height, imageType, cm); } public BufferedImageWrapper(ColorModel cm, WritableRaster raster, boolean isRasterPremultiplied, Hashtable properties) { image = new BufferedImage(cm, raster, isRasterPremultiplied, properties); } public BufferedImageWrapper(BufferedImage image) { this.image = image; } public BufferedImageWrapper() {} @Serial private void writeObject(ObjectOutputStream out) throws IOException { ImageIO.write(image, "png", out); // png is lossless } @Serial private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { image = ImageIO.read(in); } }