The increased memory is not significant, and it really is by far the best way of approaching the problem.
You should load the image on a different thread. Do some research on multithreading. Computational tasks (especially those that are lengthy) should not be performed on the same thread as the GUI, because doing this causes "freezing" or "lock ups". You should start a new thread, begin the process on the new thread, and then provide the user with some sort of loading message on the GUI thread. SwingWorker is a good jumping off point for this:
Worker Threads and SwingWorker (The Java™ Tutorials > Creating a GUI With JFC/Swing > Concurrency in Swing)
Yes. An applet is required to run in a browser (although, be warned, Oracle is making some security changes this month which are expected to effect applets significantly). It is very similar to an Application. Applets do not have mains, but rather a class which extends from JApplet or Applet. You then specify the "main" class when you embed the applet in the browser (preferably using JNLP:
Java Network Launch Protocol (The Java™ Tutorials > Deployment > Deployment In-Depth))