This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit be44182762b6bf0719ad7fc725ab439cb9a2e00a
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Thu Sep 29 15:02:46 2022 +0200

    Consider ARGB images as "direct".
---
 .../java/org/apache/sis/internal/coverage/j2d/ColorModelType.java | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelType.java
 
b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelType.java
index dec0255e18..8ff2a54bed 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelType.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelType.java
@@ -16,7 +16,9 @@
  */
 package org.apache.sis.internal.coverage.j2d;
 
+import java.awt.color.ColorSpace;
 import java.awt.image.ColorModel;
+import java.awt.image.ComponentColorModel;
 import java.awt.image.DirectColorModel;
 import java.awt.image.IndexColorModel;
 
@@ -95,6 +97,12 @@ public enum ColorModelType {
             if (model.getColorSpace() instanceof ScaledColorSpace) {
                 return SCALED;
             }
+            if (model.getClass() == ComponentColorModel.class &&            // 
Must be tested after color space.
+                model.getColorSpace().getType() == ColorSpace.TYPE_RGB &&   // 
ARGB images stored on 3 or 4 bands.
+                ImageUtilities.isIntegerType(model.getTransferType()))      // 
Because TYPE_FLOAT|DOUBLE are slow.
+            {
+                return DIRECT;
+            }
         }
         return OTHER;
     }

Reply via email to