]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.maps/src/org/simantics/maps/tile/Shp2ImgTileProvider.java
Ensure ITileProviders return BufferedImages with compatible ColorModel
[simantics/district.git] / org.simantics.district.maps / src / org / simantics / maps / tile / Shp2ImgTileProvider.java
index 0431e6fed1ceb66035acabaf6ceeaada58210914..fb225387e6c163eb039fef9fb22176ae873701ea 100644 (file)
@@ -26,6 +26,7 @@ import java.util.List;
 import javax.imageio.ImageIO;
 
 import org.simantics.maps.ProvisionException;
+import org.simantics.maps.internal.ImageUtil;
 
 /**
  * @author Tuukka Lehtonen
@@ -171,7 +172,7 @@ public class Shp2ImgTileProvider implements ITileProvider {
             return outOfBoundsImage;
 
         final int outOfBoundsImageSize = 1;
-        BufferedImage image = new BufferedImage(outOfBoundsImageSize, outOfBoundsImageSize, BufferedImage.TYPE_3BYTE_BGR);
+        BufferedImage image = ImageUtil.createScreenCompatibleImage(outOfBoundsImageSize, outOfBoundsImageSize, BufferedImage.OPAQUE);
         Graphics2D g = image.createGraphics();
         try {
             g.setColor(Color.PINK);
@@ -247,13 +248,7 @@ public class Shp2ImgTileProvider implements ITileProvider {
                 //System.out.println("img = " + img);
                 if (img == null)
                     throw new ProvisionException("Failed to provide image for rectangle: " + r);
-
-                if (BufferedImage.TYPE_4BYTE_ABGR != img.getType()) {
-                    BufferedImage img2 = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_4BYTE_ABGR);
-                    img.copyData(img2.getRaster());
-                    return img2;
-                }
-                return img;
+                return ImageUtil.toScreenCompatibleImage(img);
             } finally {
                 if (tempFile.exists()) {
 //                    System.out.println("DELETING TEMP FILE: " + tempFile);