for (int i = 0; i < names.length; i++) {
ImageDecoder dec =
ImageCodec.createImageDecoder(names[i], src, param);
RenderedImage im = null;
try {
im = dec.decodeAsRenderedImage();
} catch(OutOfMemoryError memoryError) {
// Ran out of memory - may be due to the decoder being
// obliged to read the entire image when it creates the
// RenderedImage it returns.
if(canAttemptRecovery) {