This Java tip illustrates a method of listing the image formats that can be read and written. The complete list of available readable and writeable formats can be retrieved by calling ImageIO.getReaderFormatNames() and ImageIO.getWriterFormatNames(). By default, the javax.imageio package can read GIF, PNG, and JPEG images and can write PNG and JPEG images.

  // Get list of unique supported read formats
    String[] formatNames = ImageIO.getReaderFormatNames();
    formatNames = unique(formatNames);
    // e.g. png jpeg gif jpg
    
    // Get list of unique supported write formats
    formatNames = ImageIO.getWriterFormatNames();
    formatNames = unique(formatNames);
    // e.g. png jpeg jpg
    
    // Get list of unique MIME types that can be read
    formatNames = ImageIO.getReaderMIMETypes();
    formatNames = unique(formatNames);
    // e.g image/jpeg image/png image/x-png image/gif
    
    // Get list of unique MIME types that can be written
    formatNames = ImageIO.getWriterMIMETypes();
    formatNames = unique(formatNames);
    // e.g. image/jpeg image/png image/x-png
    
    // Converts all strings in 'strings' to lowercase
    // and returns an array containing the unique values.
    // All returned values are lowercase.
    public static String[] unique(String[] strings) {
        Set set = new HashSet();
        for (int i=0; i<strings.length; i++) {
            String name = strings[i].toLowerCase();
            set.add(name);
        }
        return (String[])set.toArray(new String[0]);
    }