public static void main(String[] args) {
        CommandLine cmd;
        if (args.length == 6) {
            cmd = doCommandLineParsing(args);
        } else {
            fromUI();
            return;
        }
		/*
		 * Fügen Sie hier Anweisungen zum Einlesen einer PNG-Datei gemäß der
		 * Hinweise auf dem Übungblatt ein.
		 */
        BufferedImage inIMG = null;
        try {
            File in = new File(cmd.getOptionValue("s"));
            inIMG = ImageIO.read(in);
        } catch (IOException e) {
            System.out.println("File not found or invalid. Please enter a valid source image");
            System.exit(0);
        }

        // Ändern Sie den Namen "SimpleColorReduction" nicht!
        SimpleColorReduction scr = new SimpleColorReduction();

		/*
		 * Fügen Sie hier Anweisungen zum Aufruf Ihrer Implementierung ein.
		 * Dabei sollte die Farbanzahl des eingelesenen PNG-Bilds reduziert
		 * werden.
		 */
        int depth = 0;
        scr.setSourceImage(inIMG);
        try {
            depth = Integer.parseInt(cmd.getOptionValue("c"));
        } catch (NumberFormatException e) {
            System.out.println("The new depth has to be a number divisible by 3");
            System.exit(0);
        }
        scr.setDestBitDepth(depth);

        scr.generateImage();

		/*
		 * Fügen Sie hier Anweisungen zum Schreiben einer PNG-Datei gemäß der
		 * Hinweise auf dem Übungblatt ein.
		 */
        File out = new File(cmd.getOptionValue("d"));
        try {
            ImageIO.write(scr.getReducedImage(), "png", out);
        } catch (IOException e) {
            System.out.println("The specified output path is invalid");
            System.exit(0);
        }

    }