Normal
Wie kommt denn das Bild ins ImageIcon? Wenn das überall ein BufferedImage ist, geht es recht leicht: Das BufferedImage kann man z.B. als PNG oder JPG in einen ByteArrayOutputStream schreiben (und aus einem ByteArrayInputStream lesen), mit ImageIO. Ansonsten müßte man das Image erst in ein BufferedImage reinmalen.