001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.tools;
003
004import java.awt.image.BufferedImage;
005
006/**
007 * Processor that modifies images (sharpen, brightness, etc.).
008 * This interface is used by imagery layers to filter the
009 * displayed images (implemented in plugins).
010 *
011 * @author Nipel-Crumple
012 * @since  8625 (creation)
013 * @since 10600 (functional interface)
014 * @since 12782 (moved from {@code gui.layer} package)
015 */
016@FunctionalInterface
017public interface ImageProcessor {
018
019    /**
020     * This method should process given image according to image processors
021     * which is contained in the layer
022     *
023     * @param image that should be processed
024     *
025     * @return processed image
026     */
027    BufferedImage process(BufferedImage image);
028}