Applet de Java - guardando una imagen en formato png

Estoy creando un applet simple para hacer avatar. Puede elegir cara, cabello, ojos, etc. y luego guardarlo en un disco como un archivo png. La versión simple (sin la interfaz para el propósito de simplicidad) se ve así:

import java.awt.*;
import java.applet.*;
import java.net.*;

public class Example extends Applet
 {

 Image my_gif;
 Image my_gif2;
 URL base;
 MediaTracker mt;

 public void init() 
 {
        mt = new MediaTracker(this);
     try {
             base = getDocumentBase();
     }
     catch (Exception e) {}

       my_gif = getImage(base,"1.gif");
       my_gif2 = getImage(base,"2.gif");

       mt.addImage(my_gif,1);
       mt.addImage(my_gif2,2);

      try {
           mt.waitForAll();
      }
      catch (InterruptedException  e) {}
  }
 public void paint(Graphics g) 
 {
       g.drawImage(my_gif,0,0,this);
     g.drawImage(my_gif2,0,0,this);
 }
 }

Este ejemplo consta de dos archivos. Cuando se ejecutan son visibles de forma correcta. Ahora me gustaría guardarlo en un disco. Puedo guardar una imagen usando BufferedImage pero quiero "aplanar" dos o más imágenes y guardarlas. Cualquier ayuda sería muy apreciada. También estoy de acuerdo en que tal vez mi enfoque no sea el correcto y agradecería cualquier corrección.

Respuestas a la pregunta(2)

Su respuesta a la pregunta