I'm trying to create a simple image editing program in java. I made an ImageCanvas
object that has all the information about the image that is being edited (some basic properties, list of effects being applied, a list of BufferedImage
layers, etc.) and I wanted a simple way to save it to disk so it could be opened again later.
I figured that using Java's defualt Serializable
interface might be exactly what I was looking for and I could just write the entire object to file and read it back into memory again at a later time. However, ImageCanvas
includes an ArrayList<BufferedImage>
, and BufferedImage
's are not serializable (everything else is).
I know it is possible to override the writeObject()
and readObject()
methods, but I have never done so and I was wondering if there is any easy way to have Java serialize everything else and have some custom way to read/write the BufferedImage
's to disk? Or is there some other way to easily write the entire ImageCanvas
object to disk that I'm overlooking? Eventually I might implement my own custom image file type, but for right now I wanted a quick and easy way to save files temporarily while I am testing (the ImageCanvas
class will change a lot, so I didn't want to have to keep updating my custom file type before I have it finalized).