class ImageLoader {

    /**
     * Creates an Image from a PNG image file in an URL.
     *
     * @param url url of the image
     * @return an object of type <code>Image</code>
     */
    public static Image getPngImage(URL url) {<FILL_FUNCTION_BODY>}

    public static Image getGifImage(URL url) {
        try (InputStream is = url.openStream()) {
            BufferedImage bufferedImage = ImageIO.read(is);
            return Image.getInstance(bufferedImage, null, false);
        } catch (Exception e) {
            throw new ExceptionConverter(e);
        }
    }

    public static Image getTiffImage(URL url) {
        try (InputStream is = url.openStream()) {
            BufferedImage bufferedImage = ImageIO.read(is);
            return Image.getInstance(bufferedImage, null, false);
        } catch (Exception e) {
            throw new ExceptionConverter(e);
        }
    }


    public static Image getBmpImage(URL url) {
        try (InputStream is = url.openStream()) {
            BufferedImage bufferedImage = ImageIO.read(is);
            return Image.getInstance(bufferedImage, null, false);
        } catch (Exception e) {
            throw new ExceptionConverter(e);
        }
    }

    /**
     * Creates an Image from a JPEG image file in an URL.
     *
     * @param url url of the image
     * @return an object of type <code>Image</code>
     */
    public static Image getJpegImage(URL url) {
        try (InputStream is = url.openStream()) {
            byte[] imageBytes = Utilities.toByteArray(is);
            return new Jpeg(imageBytes);
        } catch (Exception e) {
            throw new ExceptionConverter(e);
        }
    }

    public static Image getJpeg2000Image(URL url) {
        try (InputStream is = url.openStream()) {
            byte[] imageBytes = Utilities.toByteArray(is);
            return new Jpeg2000(imageBytes);
        } catch (Exception e) {
            throw new ExceptionConverter(e);
        }
    }

    public static Image getGifImage(byte[] imageData) {
        try (InputStream is = new ByteArrayInputStream(imageData)) {
            BufferedImage bufferedImage = ImageIO.read(is);
            return Image.getInstance(bufferedImage, null, false);
        } catch (Exception e) {
            throw new ExceptionConverter(e);
        }
    }

    public static Image getPngImage(byte[] imageData) {
        try (InputStream is = new ByteArrayInputStream(imageData)) {
            BufferedImage bufferedImage = ImageIO.read(is);
            return Image.getInstance(bufferedImage, null, false);

        } catch (Exception e) {
            throw new ExceptionConverter(e);
        }
    }

    public static Image getBmpImage(byte[] imageData) {
        try (InputStream is = new ByteArrayInputStream(imageData)) {
            BufferedImage bufferedImage = ImageIO.read(is);
            return Image.getInstance(bufferedImage, null, false);

        } catch (Exception e) {
            throw new ExceptionConverter(e);
        }
    }

    /**
     * Creates an Image from an array of tiff image bytes.
     *
     * @param imageData bytes of the tiff image
     * @return an objet of type <code>Image</code>
     */
    public static Image getTiffImage(byte[] imageData) {
        try (InputStream is = new ByteArrayInputStream(imageData)) {
            BufferedImage bufferedImage = ImageIO.read(is);
            return Image.getInstance(bufferedImage, null, false);

        } catch (Exception e) {
            throw new ExceptionConverter(e);
        }
    }

    /**
     * Creates an Image from a JPEG image file in a byte array.
     *
     * @param imageData bytes of the image
     * @return an object of type <code>Image</code>
     */
    public static Image getJpegImage(byte[] imageData) {
        try {
            return new Jpeg(imageData);

        } catch (Exception e) {
            throw new ExceptionConverter(e);
        }
    }

    public static Image getJpeg2000Image(byte[] imageData) {
        try {
            return new Jpeg2000(imageData);

        } catch (Exception e) {
            throw new ExceptionConverter(e);
        }
    }

}

        try (InputStream is = url.openStream()) {
            BufferedImage bufferedImage = ImageIO.read(is);
            return Image.getInstance(bufferedImage, null, false);
        } catch (Exception e) {
            throw new ExceptionConverter(e);
        }
    
<no_super_class>