public BorderPane bottom() {
        BorderPane bottom = new BorderPane();

        AnchorPane slider = new AnchorPane();

        Rectangle rectangle = new Rectangle();
        rectangle.autosize();
        rectangle.setWidth(490);
        rectangle.setHeight(60);
        rectangle.setFill(Paint.valueOf(Color.WHITE.toString()));
        rectangle.setStroke(Paint.valueOf(Color.GRAY.toString()));
        rectangle.setStrokeWidth(1.0);
        rectangle.setStrokeType(StrokeType.INSIDE);

        Label label = new Label("Farbtiefe wählen:");
        label.setLabelFor(rectangle);
        label.getStylesheets().add("labelstyle.css");


        final Slider depthSlider = new Slider();
        depthSlider.setMin(3.0);
        depthSlider.setMax(24.0);
        depthSlider.setValue(3.0);
        depthSlider.setBlockIncrement(3.0);
        depthSlider.setMajorTickUnit(3.0);
        depthSlider.setShowTickMarks(true);
        depthSlider.setShowTickLabels(true);
        depthSlider.setBlockIncrement(3.0);
        depthSlider.setMinorTickCount(0);
        depthSlider.setSnapToTicks(true);
        depthSlider.setValue(targetDepth);
        depthSlider.valueProperty().addListener(new ChangeListener<Number>() {
            @Override
            public void changed(ObservableValue<? extends Number> observableValue, Number number, Number number2) {
                targetDepth = number2.doubleValue();
                if (sourcePath != null) {
                    SimpleColorReduction reduct = new SimpleColorReduction();
                    reduct.setDestBitDepth((int) targetDepth);
                    InputStream is;
                    try {
                        BufferedImage src = ImageIO.read(new File(sourcePath));

                        if (src.getWidth() >= 150 || src.getHeight() >= 150) {
                            BufferedImage prevIMG = new BufferedImage(150, 150, src.getType());

                            for (int i = 0; i < 150; i++) {
                                for (int j = 0; j < 150; j++) {
                                    prevIMG.setRGB(i, j, src.getRGB(i, j));
                                }
                            }
                            src = prevIMG;
                        }
                        reduct.setSourceImage(src);
                        reduct.generateImage();
                        BufferedImage temp = reduct.getReducedImage();
                        ByteArrayOutputStream os = new ByteArrayOutputStream();
                        ImageIO.write(temp, "png", os);
                        is = new ByteArrayInputStream(os.toByteArray());
                        Image targetPreview = new Image(is);
                        targetView.setImage(targetPreview);
                        is.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        });

        slider.setLeftAnchor(label, 10.0);
        slider.setTopAnchor(rectangle, 9.0);
        slider.setTopAnchor(depthSlider, 22.0);
        slider.setLeftAnchor(depthSlider, 7.0);
        slider.setRightAnchor(depthSlider, 7.0);
        slider.getChildren().addAll(rectangle, label, depthSlider);


        bottom.setTop(slider);

        BorderPane startButton = new BorderPane();
        Button startGen = new Button();
        startGen.setText("Reduzieren und Verkleinern");
        startGen.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent actionEvent) {
                if (sourcePath == null) {
                    showWarning("Bitte ein Quellbild bestimmen!");
                    return;
                }
                if (targetPath == null) {
                    showWarning("Bitte einen Speicherort bestimmen!");
                    return;
                }
                startGen((int) depthSlider.getValue());
                showWarning("Bild(er) erfolgreich generiert!");
            }
        });
        startButton.setPadding(new Insets(12, 7, 7, 7));
        startButton.setCenter(startGen);
        bottom.setBottom(startButton);

        return bottom;
    }