Changeset 17740 in josm for trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplay.java
- Timestamp:
- 2021-04-11T11:29:10+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplay.java
r17553 r17740 32 32 import org.openstreetmap.josm.data.preferences.BooleanProperty; 33 33 import org.openstreetmap.josm.data.preferences.DoubleProperty; 34 import org.openstreetmap.josm.gui.layer.imagery.ImageryFilterSettings; 35 import org.openstreetmap.josm.gui.layer.imagery.ImageryFilterSettings.FilterChangeListener; 34 36 import org.openstreetmap.josm.spi.preferences.Config; 35 37 import org.openstreetmap.josm.spi.preferences.PreferenceChangeEvent; … … 37 39 import org.openstreetmap.josm.tools.Destroyable; 38 40 import org.openstreetmap.josm.tools.ExifReader; 41 import org.openstreetmap.josm.tools.ImageProcessor; 39 42 import org.openstreetmap.josm.tools.ImageProvider; 40 43 import org.openstreetmap.josm.tools.Logging; … … 45 48 * Offers basic mouse interaction (zoom, drag) and on-screen text. 46 49 */ 47 public class ImageDisplay extends JComponent implements Destroyable, PreferenceChangedListener {50 public class ImageDisplay extends JComponent implements Destroyable, PreferenceChangedListener, FilterChangeListener { 48 51 49 52 /** The file that is currently displayed */ … … 51 54 52 55 /** The image currently displayed */ 53 private transient Image image; 56 private transient BufferedImage image; 57 58 /** 59 * Process the image before it is being displayed 60 */ 61 private final ImageProcessor imageProcessor; 54 62 55 63 /** The image currently displayed */ … … 295 303 @Override 296 304 public void run() { 297 Image img;305 BufferedImage img; 298 306 try { 299 307 img = ImageIO.read(file); … … 690 698 */ 691 699 public ImageDisplay() { 700 this(image -> image); 701 } 702 703 public ImageDisplay(ImageProcessor imageProcessor) { 692 704 addMouseListener(imgMouseListener); 693 705 addMouseWheelListener(imgMouseListener); … … 695 707 Config.getPref().addPreferenceChangeListener(this); 696 708 preferenceChanged(null); 709 this.imageProcessor = imageProcessor; 710 if (imageProcessor instanceof ImageryFilterSettings) { 711 ((ImageryFilterSettings) imageProcessor).addFilterChangeListener(this); 712 } 697 713 } 698 714 … … 703 719 removeMouseMotionListener(imgMouseListener); 704 720 Config.getPref().removePreferenceChangeListener(this); 721 if (imageProcessor instanceof ImageryFilterSettings) { 722 ((ImageryFilterSettings) imageProcessor).removeFilterChangeListener(this); 723 } 705 724 } 706 725 … … 744 763 745 764 @Override 765 public void filterChanged() { 766 repaint(); 767 } 768 769 @Override 746 770 public void paintComponent(Graphics g) { 747 771 ImageEntry entry; 748 Image image;772 BufferedImage image; 749 773 VisRect visibleRect; 750 774 boolean errorLoading; … … 818 842 r.x = r.y = 0; 819 843 } 844 } 845 846 if (image != null) { 847 image = imageProcessor.process(image); 820 848 } 821 849
Note:
See TracChangeset
for help on using the changeset viewer.