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 85b775cfa258e7183cf1cd4b67d1ef7d959c5a9e
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Fri Dec 27 12:17:26 2024 +0100

    Move the `org.apache.sis.coverage.privy` classes related to image handling 
to a separated `org.apache.sis.image.privy` package.
    This is change in SIS internal only, with no impact on public API. This 
commit has no code change other than the move.
---
 .../org.apache.sis.feature/main/module-info.java   |  5 ++++
 .../apache/sis/coverage/grid/DefaultEvaluator.java |  2 +-
 .../apache/sis/coverage/grid/GridCoverage2D.java   |  4 +--
 .../sis/coverage/grid/GridCoverageBuilder.java     |  8 +++---
 .../apache/sis/coverage/grid/ImageRenderer.java    | 12 ++++-----
 .../apache/sis/coverage/grid/SliceGeometry.java    |  2 +-
 .../apache/sis/coverage/privy/RangeArgument.java   |  2 ++
 .../main/org/apache/sis/image/AnnotatedImage.java  |  4 +--
 .../org/apache/sis/image/BandAggregateImage.java   |  2 +-
 .../org/apache/sis/image/BandAggregateLayout.java  |  4 +--
 .../main/org/apache/sis/image/BandSelectImage.java |  8 +++---
 .../main/org/apache/sis/image/BandSharing.java     |  2 +-
 .../apache/sis/image/BandedSampleConverter.java    |  8 +++---
 .../main/org/apache/sis/image/Colorizer.java       |  8 +++---
 .../main/org/apache/sis/image/ComputedImage.java   |  2 +-
 .../main/org/apache/sis/image/DataType.java        |  2 +-
 .../main/org/apache/sis/image/ImageCombiner.java   |  4 +--
 .../main/org/apache/sis/image/ImageLayout.java     |  2 +-
 .../main/org/apache/sis/image/ImageOverlay.java    |  2 +-
 .../main/org/apache/sis/image/ImageProcessor.java  |  4 +--
 .../main/org/apache/sis/image/MaskImage.java       |  6 ++---
 .../main/org/apache/sis/image/MaskedImage.java     |  6 ++---
 .../org/apache/sis/image/MultiSourceImage.java     |  2 +-
 .../org/apache/sis/image/MultiSourcePrefetch.java  |  2 +-
 .../main/org/apache/sis/image/PixelIterator.java   |  2 +-
 .../main/org/apache/sis/image/PlanarImage.java     |  6 ++---
 .../sis/image/PositionalConsistencyImage.java      |  2 +-
 .../main/org/apache/sis/image/PrefetchedImage.java |  8 +++---
 .../main/org/apache/sis/image/RecoloredImage.java  |  4 +--
 .../main/org/apache/sis/image/ResampledImage.java  |  6 ++---
 .../org/apache/sis/image/SourceAlignedImage.java   |  2 +-
 .../org/apache/sis/image/StatisticsCalculator.java |  2 +-
 .../main/org/apache/sis/image/Transferer.java      |  2 +-
 .../main/org/apache/sis/image/Visualization.java   |  4 +--
 .../apache/sis/image/WritableComputedImage.java    |  2 +-
 .../privy/BatchComputedImage.java                  |  2 +-
 .../privy/ColorModelBuilder.java                   |  2 +-
 .../privy/ColorModelFactory.java                   |  2 +-
 .../{coverage => image}/privy/ColorModelType.java  |  2 +-
 .../privy/ColorScaleBuilder.java                   |  2 +-
 .../{coverage => image}/privy/ColorsForRange.java  |  2 +-
 .../privy/DeferredProperty.java                    |  2 +-
 .../sis/{coverage => image}/privy/FillValues.java  |  2 +-
 .../{coverage => image}/privy/ImageUtilities.java  |  2 +-
 .../privy/MultiBandsIndexColorModel.java           |  2 +-
 .../{coverage => image}/privy/ObservableImage.java |  2 +-
 .../{coverage => image}/privy/RasterFactory.java   |  2 +-
 .../privy/SampleModelBuilder.java                  |  2 +-
 .../privy/ScaledColorModel.java                    |  2 +-
 .../privy/ScaledColorSpace.java                    |  2 +-
 .../privy/TileErrorHandler.java                    |  2 +-
 .../{coverage => image}/privy/TileOpExecutor.java  |  2 +-
 .../{coverage => image}/privy/TilePlaceholder.java |  2 +-
 .../sis/{coverage => image}/privy/TiledImage.java  |  2 +-
 .../privy/WritableTiledImage.java                  |  2 +-
 .../org/apache/sis/image/privy/package-info.java   | 30 ++++++++++++++++++++++
 .../sis/coverage/grid/GridCoverage2DTest.java      |  2 +-
 .../coverage/grid/ResampledGridCoverageTest.java   |  2 +-
 .../coverage/grid/TranslatedGridCoverageTest.java  |  2 +-
 .../apache/sis/image/BandAggregateImageTest.java   |  4 +--
 .../org/apache/sis/image/BandSelectImageTest.java  |  4 +--
 .../org/apache/sis/image/ImageOverlayTest.java     |  2 +-
 .../org/apache/sis/image/InterpolationTest.java    |  2 +-
 .../test/org/apache/sis/image/MaskedImageTest.java |  2 +-
 .../test/org/apache/sis/image/PlanarImageTest.java |  2 +-
 .../org/apache/sis/image/ResampledImageTest.java   |  2 +-
 .../apache/sis/image/StatisticsCalculatorTest.java |  2 +-
 .../test/org/apache/sis/image/TiledImageMock.java  |  4 +--
 .../privy/ColorModelBuilderTest.java               |  2 +-
 .../privy/ImageUtilitiesTest.java                  |  2 +-
 .../privy/SampleModelBuilderTest.java              |  2 +-
 .../privy/ScaledColorSpaceTest.java                |  2 +-
 .../sis/image/processing/isoline/IsolinesTest.java |  2 +-
 .../org/apache/sis/map/coverage/RenderingData.java |  4 +--
 .../sis/map/coverage/RenderingWorkaround.java      |  2 +-
 .../sis/storage/geotiff/CompressedSubset.java      |  2 +-
 .../org/apache/sis/storage/geotiff/DataSubset.java |  6 ++---
 .../sis/storage/geotiff/ImageFileDirectory.java    |  6 ++---
 .../org/apache/sis/storage/geotiff/Writer.java     |  2 +-
 .../storage/geotiff/writer/ReformattedImage.java   |  4 +--
 .../org/apache/sis/storage/geotiff/WriterTest.java |  2 +-
 .../apache/sis/storage/netcdf/base/Convention.java |  2 +-
 .../sis/storage/netcdf/base/RasterResource.java    |  2 +-
 .../sis/storage/sql/postgis/RasterReader.java      |  6 ++---
 .../aggregate/ConcatenatedGridCoverage.java        |  2 +-
 .../sis/storage/base/TiledDeferredImage.java       |  2 +-
 .../apache/sis/storage/base/TiledGridCoverage.java |  4 +--
 .../apache/sis/storage/base/TiledGridResource.java |  4 +--
 .../org/apache/sis/storage/esri/RasterStore.java   |  8 +++---
 .../apache/sis/storage/esri/RawRasterReader.java   |  4 +--
 .../sis/storage/image/WorldFileResource.java       |  2 +-
 .../apache/sis/gui/coverage/CoverageCanvas.java    |  2 +-
 .../main/org/apache/sis/gui/coverage/GridView.java |  2 +-
 .../apache/sis/gui/coverage/IsolineRenderer.java   |  2 +-
 .../apache/sis/gui/internal/ImageConverter.java    |  4 +--
 .../main/org/apache/sis/gui/map/MapCanvasAWT.java  |  2 +-
 .../main/org/apache/sis/storage/gdal/Band.java     |  2 +-
 .../org/apache/sis/storage/gdal/TiledResource.java |  4 +--
 98 files changed, 186 insertions(+), 149 deletions(-)

diff --git a/endorsed/src/org.apache.sis.feature/main/module-info.java 
b/endorsed/src/org.apache.sis.feature/main/module-info.java
index 3a65be6345..88846fbe09 100644
--- a/endorsed/src/org.apache.sis.feature/main/module-info.java
+++ b/endorsed/src/org.apache.sis.feature/main/module-info.java
@@ -76,6 +76,11 @@ module org.apache.sis.feature {
             org.apache.sis.cql;                     // In the "incubator" 
sub-project.
 
     exports org.apache.sis.coverage.privy to
+            org.apache.sis.storage,
+            org.apache.sis.storage.netcdf,
+            org.apache.sis.portrayal;
+
+    exports org.apache.sis.image.privy to
             org.apache.sis.storage,
             org.apache.sis.storage.sql,
             org.apache.sis.storage.netcdf,
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/DefaultEvaluator.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/DefaultEvaluator.java
index 599b188665..6a7eef4a17 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/DefaultEvaluator.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/DefaultEvaluator.java
@@ -35,7 +35,7 @@ import org.apache.sis.feature.internal.Resources;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.util.privy.CollectionsExt;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.referencing.CRS;
 import org.apache.sis.referencing.privy.DirectPositionView;
 import org.apache.sis.referencing.privy.WraparoundAxesFinder;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/GridCoverage2D.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/GridCoverage2D.java
index ef9342082c..90753bb89a 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/GridCoverage2D.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/GridCoverage2D.java
@@ -44,7 +44,7 @@ import org.opengis.referencing.operation.TransformException;
 import org.opengis.referencing.operation.MathTransform1D;
 import org.apache.sis.image.DataType;
 import org.apache.sis.coverage.SampleDimension;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.feature.internal.Resources;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.Debug;
@@ -628,7 +628,7 @@ public class GridCoverage2D extends GridCoverage {
                      * at the cost of returning an image larger than necessary.
                      * This workaround can be removed on JDK17.
                      */
-                    if 
(org.apache.sis.coverage.privy.TilePlaceholder.PENDING_JDK_FIX) {
+                    if 
(org.apache.sis.image.privy.TilePlaceholder.PENDING_JDK_FIX) {
                         if (result.getTileGridXOffset() == ix && 
result.getTileGridYOffset() == iy) {
                             return result;
                         }
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/GridCoverageBuilder.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/GridCoverageBuilder.java
index 042ac90136..731f5e2cc5 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/GridCoverageBuilder.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/GridCoverageBuilder.java
@@ -36,10 +36,10 @@ import org.opengis.geometry.Envelope;
 import org.opengis.referencing.operation.TransformException;
 import org.apache.sis.image.PlanarImage;
 import org.apache.sis.coverage.SampleDimension;
-import org.apache.sis.coverage.privy.ColorScaleBuilder;
-import org.apache.sis.coverage.privy.ObservableImage;
-import org.apache.sis.coverage.privy.TiledImage;
-import org.apache.sis.coverage.privy.WritableTiledImage;
+import org.apache.sis.image.privy.ColorScaleBuilder;
+import org.apache.sis.image.privy.ObservableImage;
+import org.apache.sis.image.privy.TiledImage;
+import org.apache.sis.image.privy.WritableTiledImage;
 import org.apache.sis.feature.internal.Resources;
 import org.apache.sis.referencing.operation.matrix.Matrices;
 import org.apache.sis.referencing.operation.matrix.MatrixSIS;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/ImageRenderer.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/ImageRenderer.java
index 5483da9234..6a9d10d465 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/ImageRenderer.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/ImageRenderer.java
@@ -45,12 +45,12 @@ import 
org.apache.sis.coverage.SubspaceNotSpecifiedException;
 import org.apache.sis.coverage.MismatchedCoverageRangeException;
 import org.apache.sis.coverage.SampleDimension;
 import org.apache.sis.coverage.Category;
-import org.apache.sis.coverage.privy.ColorScaleBuilder;
-import org.apache.sis.coverage.privy.DeferredProperty;
-import org.apache.sis.coverage.privy.RasterFactory;
-import org.apache.sis.coverage.privy.ObservableImage;
-import org.apache.sis.coverage.privy.TiledImage;
-import org.apache.sis.coverage.privy.WritableTiledImage;
+import org.apache.sis.image.privy.ColorScaleBuilder;
+import org.apache.sis.image.privy.DeferredProperty;
+import org.apache.sis.image.privy.RasterFactory;
+import org.apache.sis.image.privy.ObservableImage;
+import org.apache.sis.image.privy.TiledImage;
+import org.apache.sis.image.privy.WritableTiledImage;
 import org.apache.sis.feature.internal.Resources;
 import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.util.ComparisonMode;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/SliceGeometry.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/SliceGeometry.java
index 33bd0adf2b..7b5190ca80 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/SliceGeometry.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/SliceGeometry.java
@@ -44,7 +44,7 @@ import org.apache.sis.util.resources.Errors;
  * {@link GridGeometry#selectDimensions(int[])} and {@link 
ImageRenderer#getImageGeometry(int)} methods.
  *
  * <p>This class implements {@link Function} for allowing {@code apply(…)} to 
be invoked from outside this package.
- * That function is invoked (indirectly) by {@link 
org.apache.sis.coverage.privy.TiledImage#getProperty(String)}.</p>
+ * That function is invoked (indirectly) by {@link 
org.apache.sis.image.privy.TiledImage#getProperty(String)}.</p>
  *
  * @author  Martin Desruisseaux (Geomatys)
  */
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/RangeArgument.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/RangeArgument.java
index a2ad7bd54b..2584e68eb2 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/RangeArgument.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/RangeArgument.java
@@ -25,6 +25,8 @@ import org.opengis.metadata.spatial.DimensionNameType;
 import org.apache.sis.coverage.SampleDimension;
 import org.apache.sis.coverage.grid.GridExtent;
 import org.apache.sis.feature.internal.Resources;
+import org.apache.sis.image.privy.ColorModelFactory;
+import org.apache.sis.image.privy.SampleModelBuilder;
 import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.Localized;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/AnnotatedImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/AnnotatedImage.java
index 120b37cae1..04a5c4f71b 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/AnnotatedImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/AnnotatedImage.java
@@ -31,8 +31,8 @@ import java.awt.image.ImagingOpException;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.resources.Errors;
 import org.apache.sis.util.collection.Cache;
-import org.apache.sis.coverage.privy.TileOpExecutor;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.TileOpExecutor;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.util.privy.Strings;
 
 
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandAggregateImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandAggregateImage.java
index dfb8c1ae2c..b8fe4275d7 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandAggregateImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandAggregateImage.java
@@ -30,7 +30,7 @@ import java.awt.image.WritableRenderedImage;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.math.Statistics;
 import org.apache.sis.coverage.SampleDimension;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.coverage.privy.BandAggregateArgument;
 
 
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandAggregateLayout.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandAggregateLayout.java
index 976a8e4136..4d700e5aba 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandAggregateLayout.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandAggregateLayout.java
@@ -33,11 +33,11 @@ import org.apache.sis.util.privy.UnmodifiableArrayList;
 import org.apache.sis.feature.internal.Resources;
 import org.apache.sis.coverage.SampleDimension;
 import org.apache.sis.coverage.grid.DisjointExtentException;
-import org.apache.sis.coverage.privy.ImageUtilities;
-import org.apache.sis.coverage.privy.ColorModelFactory;
 import org.apache.sis.coverage.privy.BandAggregateArgument;
 import org.apache.sis.coverage.privy.CommonDomainFinder;
 import org.apache.sis.coverage.privy.SampleDimensions;
+import org.apache.sis.image.privy.ImageUtilities;
+import org.apache.sis.image.privy.ColorModelFactory;
 
 
 /**
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandSelectImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandSelectImage.java
index c2dc3b0c68..e1bcd92e8f 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandSelectImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandSelectImage.java
@@ -30,10 +30,10 @@ import java.awt.image.ColorModel;
 import java.awt.image.TileObserver;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.ArgumentChecks;
-import org.apache.sis.coverage.privy.ImageUtilities;
-import org.apache.sis.coverage.privy.TileOpExecutor;
-import org.apache.sis.coverage.privy.ColorModelFactory;
-import org.apache.sis.coverage.privy.ObservableImage;
+import org.apache.sis.image.privy.ImageUtilities;
+import org.apache.sis.image.privy.TileOpExecutor;
+import org.apache.sis.image.privy.ColorModelFactory;
+import org.apache.sis.image.privy.ObservableImage;
 
 
 /**
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandSharing.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandSharing.java
index 1d6c26d4d6..5195572f11 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandSharing.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandSharing.java
@@ -29,7 +29,7 @@ import java.awt.image.DataBufferFloat;
 import java.awt.image.DataBufferDouble;
 import java.awt.image.Raster;
 import java.awt.image.RenderedImage;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 
 
 /**
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandedSampleConverter.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandedSampleConverter.java
index 8a42951f09..25d5ae161c 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandedSampleConverter.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/BandedSampleConverter.java
@@ -32,16 +32,16 @@ import org.opengis.referencing.operation.MathTransform1D;
 import org.opengis.referencing.operation.TransformException;
 import org.opengis.referencing.operation.NoninvertibleTransformException;
 import org.apache.sis.coverage.SampleDimension;
-import org.apache.sis.coverage.privy.ImageUtilities;
-import org.apache.sis.coverage.privy.TileOpExecutor;
 import org.apache.sis.coverage.privy.SampleDimensions;
-import org.apache.sis.coverage.privy.ColorScaleBuilder;
+import org.apache.sis.image.privy.ImageUtilities;
+import org.apache.sis.image.privy.TileOpExecutor;
+import org.apache.sis.image.privy.ColorScaleBuilder;
 import org.apache.sis.util.Numbers;
 import org.apache.sis.util.Disposable;
 import org.apache.sis.util.logging.Logging;
 import org.apache.sis.math.DecimalFunctions;
 import org.apache.sis.measure.NumberRange;
-import static org.apache.sis.coverage.privy.ImageUtilities.LOGGER;
+import static org.apache.sis.image.privy.ImageUtilities.LOGGER;
 
 
 /**
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/Colorizer.java 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/Colorizer.java
index 35bb45ab2a..e3fa3553c6 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/Colorizer.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/Colorizer.java
@@ -31,10 +31,10 @@ import java.awt.image.IndexColorModel;
 import java.awt.image.RenderedImage;
 import org.apache.sis.coverage.Category;
 import org.apache.sis.coverage.SampleDimension;
-import org.apache.sis.coverage.privy.ColorModelBuilder;
-import org.apache.sis.coverage.privy.ColorScaleBuilder;
-import org.apache.sis.coverage.privy.ColorModelFactory;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ColorModelBuilder;
+import org.apache.sis.image.privy.ColorScaleBuilder;
+import org.apache.sis.image.privy.ColorModelFactory;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.measure.NumberRange;
 import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.util.privy.UnmodifiableArrayList;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ComputedImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ComputedImage.java
index 0f327285f5..8fe2511a93 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ComputedImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ComputedImage.java
@@ -41,7 +41,7 @@ import org.apache.sis.util.collection.Cache;
 import org.apache.sis.util.resources.Errors;
 import org.apache.sis.coverage.grid.GridExtent;     // For javadoc
 import org.apache.sis.feature.internal.Resources;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 
 
 /**
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/DataType.java 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/DataType.java
index cbbc0acbc1..0bb49fc4bb 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/DataType.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/DataType.java
@@ -21,7 +21,7 @@ import java.awt.image.RenderedImage;
 import java.awt.image.RasterFormatException;
 import org.apache.sis.util.Numbers;
 import org.apache.sis.measure.NumberRange;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.feature.internal.Resources;
 import org.apache.sis.util.resources.Errors;
 import static 
org.apache.sis.util.privy.Numerics.MAX_INTEGER_CONVERTIBLE_TO_FLOAT;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageCombiner.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageCombiner.java
index a7cfb22fd4..c7278a641e 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageCombiner.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageCombiner.java
@@ -24,8 +24,8 @@ import java.util.Objects;
 import java.util.function.Consumer;
 import javax.measure.Quantity;
 import org.opengis.referencing.operation.MathTransform;
-import org.apache.sis.coverage.privy.ImageUtilities;
-import org.apache.sis.coverage.privy.TileOpExecutor;
+import org.apache.sis.image.privy.ImageUtilities;
+import org.apache.sis.image.privy.TileOpExecutor;
 import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.measure.Units;
 
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageLayout.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageLayout.java
index 469b5bb49e..7e26598f63 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageLayout.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageLayout.java
@@ -33,7 +33,7 @@ import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.resources.Errors;
 import org.apache.sis.util.privy.Strings;
 import org.apache.sis.system.Configuration;
-import org.apache.sis.coverage.privy.RasterFactory;
+import org.apache.sis.image.privy.RasterFactory;
 import org.apache.sis.feature.internal.Resources;
 
 
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageOverlay.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageOverlay.java
index fb6fd7ca6d..a5f484f3a6 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageOverlay.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageOverlay.java
@@ -40,7 +40,7 @@ import org.apache.sis.util.logging.Logging;
 import org.apache.sis.math.Statistics;
 import org.apache.sis.measure.Quantities;
 import org.apache.sis.feature.internal.Resources;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 
 
 /**
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageProcessor.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageProcessor.java
index f30e57d848..75c8916030 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageProcessor.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ImageProcessor.java
@@ -46,8 +46,8 @@ import 
org.apache.sis.referencing.operation.transform.MathTransforms;
 import org.apache.sis.coverage.grid.GridCoverage;
 import org.apache.sis.coverage.grid.GridGeometry;
 import org.apache.sis.coverage.grid.GridCoverageProcessor;
-import org.apache.sis.coverage.privy.ImageUtilities;
-import org.apache.sis.coverage.privy.TiledImage;
+import org.apache.sis.image.privy.ImageUtilities;
+import org.apache.sis.image.privy.TiledImage;
 import org.apache.sis.math.Statistics;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.ArgumentChecks;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MaskImage.java 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MaskImage.java
index 8fb58456c2..18506461dd 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MaskImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MaskImage.java
@@ -22,10 +22,10 @@ import java.awt.image.WritableRaster;
 import org.opengis.referencing.operation.MathTransform;
 import org.opengis.referencing.operation.TransformException;
 import org.opengis.referencing.operation.NoninvertibleTransformException;
-import org.apache.sis.coverage.privy.ColorModelFactory;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ColorModelFactory;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.util.logging.Logging;
-import static org.apache.sis.coverage.privy.ImageUtilities.LOGGER;
+import static org.apache.sis.image.privy.ImageUtilities.LOGGER;
 
 
 /**
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MaskedImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MaskedImage.java
index e358203876..b82718dcc2 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MaskedImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MaskedImage.java
@@ -33,9 +33,9 @@ import java.awt.image.IndexColorModel;
 import java.awt.image.MultiPixelPackedSampleModel;
 import java.lang.ref.SoftReference;
 import org.apache.sis.util.privy.Numerics;
-import org.apache.sis.coverage.privy.FillValues;
-import org.apache.sis.coverage.privy.ImageUtilities;
-import org.apache.sis.coverage.privy.TilePlaceholder;
+import org.apache.sis.image.privy.FillValues;
+import org.apache.sis.image.privy.ImageUtilities;
+import org.apache.sis.image.privy.TilePlaceholder;
 import static org.apache.sis.util.privy.Numerics.LONG_SHIFT;
 import static org.apache.sis.pending.jdk.JDK18.ceilDiv;
 
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MultiSourceImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MultiSourceImage.java
index 957646ca0b..2255b820c0 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MultiSourceImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MultiSourceImage.java
@@ -23,7 +23,7 @@ import java.awt.image.ColorModel;
 import java.awt.image.SampleModel;
 import java.awt.image.RenderedImage;
 import java.awt.image.WritableRenderedImage;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.util.Disposable;
 
 
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MultiSourcePrefetch.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MultiSourcePrefetch.java
index c2cb865e35..cd09e984ae 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MultiSourcePrefetch.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/MultiSourcePrefetch.java
@@ -23,7 +23,7 @@ import java.awt.image.RenderedImage;
 import java.awt.image.ImagingOpException;
 import org.apache.sis.util.Disposable;
 import org.apache.sis.system.CommonExecutor;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 
 
 /**
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PixelIterator.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PixelIterator.java
index 4c04121af6..cb5bd3c4cd 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PixelIterator.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PixelIterator.java
@@ -46,7 +46,7 @@ import org.apache.sis.util.resources.Errors;
 import org.apache.sis.measure.NumberRange;
 import org.apache.sis.util.privy.Numerics;
 import org.apache.sis.feature.internal.Resources;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 import static org.apache.sis.pending.jdk.JDK18.ceilDiv;
 
 // Specific to the geoapi-3.1 and geoapi-4.0 branches:
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PlanarImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PlanarImage.java
index 1e504d103d..353c67ae10 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PlanarImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PlanarImage.java
@@ -36,9 +36,9 @@ import org.apache.sis.util.resources.Errors;
 import org.apache.sis.util.resources.Messages;
 import org.apache.sis.coverage.SampleDimension;
 import org.apache.sis.coverage.grid.GridGeometry;       // For javadoc
-import org.apache.sis.coverage.privy.ImageUtilities;
-import org.apache.sis.coverage.privy.TileOpExecutor;
-import org.apache.sis.coverage.privy.ColorModelFactory;
+import org.apache.sis.image.privy.ImageUtilities;
+import org.apache.sis.image.privy.TileOpExecutor;
+import org.apache.sis.image.privy.ColorModelFactory;
 import org.apache.sis.feature.internal.Resources;
 import org.apache.sis.pending.jdk.JDK18;
 
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PositionalConsistencyImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PositionalConsistencyImage.java
index 0437993d67..34fef74203 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PositionalConsistencyImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PositionalConsistencyImage.java
@@ -22,7 +22,7 @@ import java.awt.image.Raster;
 import java.awt.image.WritableRaster;
 import org.opengis.referencing.operation.MathTransform;
 import org.opengis.referencing.operation.TransformException;
-import org.apache.sis.coverage.privy.ColorModelFactory;
+import org.apache.sis.image.privy.ColorModelFactory;
 
 
 /**
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PrefetchedImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PrefetchedImage.java
index a591a34520..2c0e919f28 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PrefetchedImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/PrefetchedImage.java
@@ -25,10 +25,10 @@ import java.awt.image.SampleModel;
 import java.awt.image.RenderedImage;
 import java.awt.image.Raster;
 import java.awt.image.RasterFormatException;
-import org.apache.sis.coverage.privy.ImageUtilities;
-import org.apache.sis.coverage.privy.TileErrorHandler;
-import org.apache.sis.coverage.privy.TileOpExecutor;
-import org.apache.sis.coverage.privy.TilePlaceholder;
+import org.apache.sis.image.privy.ImageUtilities;
+import org.apache.sis.image.privy.TileErrorHandler;
+import org.apache.sis.image.privy.TileOpExecutor;
+import org.apache.sis.image.privy.TilePlaceholder;
 import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.util.Disposable;
 import org.apache.sis.util.resources.Errors;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/RecoloredImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/RecoloredImage.java
index 7c6f30f023..ca0297e3c4 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/RecoloredImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/RecoloredImage.java
@@ -27,8 +27,8 @@ import java.awt.image.SampleModel;
 import java.awt.image.RenderedImage;
 import org.apache.sis.coverage.Category;
 import org.apache.sis.coverage.SampleDimension;
-import org.apache.sis.coverage.privy.ColorModelFactory;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ColorModelFactory;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.util.privy.Numerics;
 import org.apache.sis.util.collection.Containers;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ResampledImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ResampledImage.java
index 8885502bc2..2ecc0bb5dd 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ResampledImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/ResampledImage.java
@@ -40,8 +40,8 @@ import org.opengis.referencing.operation.MathTransform2D;
 import org.opengis.referencing.operation.TransformException;
 import org.apache.sis.referencing.operation.transform.MathTransforms;
 import org.apache.sis.referencing.operation.transform.TransformSeparator;
-import org.apache.sis.coverage.privy.ImageUtilities;
-import org.apache.sis.coverage.privy.FillValues;
+import org.apache.sis.image.privy.ImageUtilities;
+import org.apache.sis.image.privy.FillValues;
 import org.apache.sis.feature.internal.Resources;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.Disposable;
@@ -52,7 +52,7 @@ import org.apache.sis.util.resources.Errors;
 import org.apache.sis.geometry.Shapes2D;
 import org.apache.sis.measure.Quantities;
 import org.apache.sis.measure.Units;
-import static org.apache.sis.coverage.privy.ImageUtilities.LOGGER;
+import static org.apache.sis.image.privy.ImageUtilities.LOGGER;
 
 
 /**
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/SourceAlignedImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/SourceAlignedImage.java
index c10e792fba..302a8edfb4 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/SourceAlignedImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/SourceAlignedImage.java
@@ -26,7 +26,7 @@ import java.awt.image.RenderedImage;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.Disposable;
 import org.apache.sis.util.Workaround;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 
 
 /**
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/StatisticsCalculator.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/StatisticsCalculator.java
index 7a95a28c9a..398cc4fda3 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/StatisticsCalculator.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/StatisticsCalculator.java
@@ -27,7 +27,7 @@ import java.util.stream.Collector;
 import org.apache.sis.math.Statistics;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.resources.Vocabulary;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 
 
 /**
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/Transferer.java 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/Transferer.java
index c67a220878..6c953309cb 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/Transferer.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/Transferer.java
@@ -28,7 +28,7 @@ import java.awt.image.RenderedImage;
 import java.awt.image.RasterFormatException;
 import org.opengis.referencing.operation.MathTransform1D;
 import org.opengis.referencing.operation.TransformException;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.system.Configuration;
 import org.apache.sis.feature.internal.Resources;
 import org.apache.sis.util.privy.Numerics;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/Visualization.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/Visualization.java
index 06d0c8caa7..54dda3f3ff 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/Visualization.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/Visualization.java
@@ -42,9 +42,9 @@ import 
org.apache.sis.referencing.operation.transform.MathTransforms;
 import org.apache.sis.coverage.SampleDimension;
 import org.apache.sis.coverage.Category;
 import org.apache.sis.coverage.internal.CompoundTransform;
-import org.apache.sis.coverage.privy.ImageUtilities;
 import org.apache.sis.coverage.privy.SampleDimensions;
-import org.apache.sis.coverage.privy.ColorScaleBuilder;
+import org.apache.sis.image.privy.ImageUtilities;
+import org.apache.sis.image.privy.ColorScaleBuilder;
 import org.apache.sis.feature.internal.Resources;
 import org.apache.sis.measure.NumberRange;
 import org.apache.sis.math.Statistics;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/WritableComputedImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/WritableComputedImage.java
index e6bf82c9ea..6357e04a7c 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/WritableComputedImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/WritableComputedImage.java
@@ -22,7 +22,7 @@ import java.awt.image.Raster;
 import java.awt.image.RenderedImage;
 import java.awt.image.WritableRaster;
 import java.awt.image.WritableRenderedImage;
-import org.apache.sis.coverage.privy.ObservableImage;
+import org.apache.sis.image.privy.ObservableImage;
 
 
 /**
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/BatchComputedImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/BatchComputedImage.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/BatchComputedImage.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/BatchComputedImage.java
index 6c06fc5d18..5af91d8c81 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/BatchComputedImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/BatchComputedImage.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.Map;
 import java.awt.Rectangle;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ColorModelBuilder.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ColorModelBuilder.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ColorModelBuilder.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ColorModelBuilder.java
index 1501c36951..e970e8780a 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ColorModelBuilder.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ColorModelBuilder.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.Arrays;
 import java.awt.Transparency;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ColorModelFactory.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ColorModelFactory.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ColorModelFactory.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ColorModelFactory.java
index c71c4b5379..e497dc2482 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ColorModelFactory.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ColorModelFactory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.Map;
 import java.util.Arrays;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ColorModelType.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ColorModelType.java
similarity index 98%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ColorModelType.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ColorModelType.java
index 30166e1440..09c7baf825 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ColorModelType.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ColorModelType.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.awt.color.ColorSpace;
 import java.awt.image.ColorModel;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ColorScaleBuilder.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ColorScaleBuilder.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ColorScaleBuilder.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ColorScaleBuilder.java
index 54905cfc09..2e83936957 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ColorScaleBuilder.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ColorScaleBuilder.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.Map;
 import java.util.List;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ColorsForRange.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ColorsForRange.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ColorsForRange.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ColorsForRange.java
index dddd4b61a5..fa61b0403b 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ColorsForRange.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ColorsForRange.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.Map;
 import java.util.Collection;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/DeferredProperty.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/DeferredProperty.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/DeferredProperty.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/DeferredProperty.java
index a1b259f92e..b3fe050041 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/DeferredProperty.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/DeferredProperty.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.Map;
 import java.util.function.Function;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/FillValues.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/FillValues.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/FillValues.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/FillValues.java
index 031a4e1b87..f9735f6ffd 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/FillValues.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/FillValues.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.Arrays;
 import java.util.Objects;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ImageUtilities.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ImageUtilities.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ImageUtilities.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ImageUtilities.java
index fc75ec618a..c2e6dbd489 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ImageUtilities.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ImageUtilities.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.Arrays;
 import java.util.logging.Logger;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/MultiBandsIndexColorModel.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/MultiBandsIndexColorModel.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/MultiBandsIndexColorModel.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/MultiBandsIndexColorModel.java
index 676c4d0604..7971c8db9b 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/MultiBandsIndexColorModel.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/MultiBandsIndexColorModel.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.Arrays;
 import java.awt.image.Raster;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ObservableImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ObservableImage.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ObservableImage.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ObservableImage.java
index 4e50888bcd..b9da93b4f8 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ObservableImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ObservableImage.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.Arrays;
 import java.util.Hashtable;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/RasterFactory.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/RasterFactory.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/RasterFactory.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/RasterFactory.java
index 6e367c666a..caa5b1edaf 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/RasterFactory.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/RasterFactory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.awt.Point;
 import java.awt.image.ColorModel;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/SampleModelBuilder.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/SampleModelBuilder.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/SampleModelBuilder.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/SampleModelBuilder.java
index dc08be7e9d..cb619181b9 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/SampleModelBuilder.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/SampleModelBuilder.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.Arrays;
 import java.awt.Dimension;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ScaledColorModel.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ScaledColorModel.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ScaledColorModel.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ScaledColorModel.java
index 6927f97ace..34b22a4d66 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ScaledColorModel.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ScaledColorModel.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.awt.Transparency;
 import java.awt.image.DataBuffer;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ScaledColorSpace.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ScaledColorSpace.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ScaledColorSpace.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ScaledColorSpace.java
index 17dad42804..d73bc6a748 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/ScaledColorSpace.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/ScaledColorSpace.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.awt.color.ColorSpace;
 import org.apache.sis.util.Debug;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/TileErrorHandler.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/TileErrorHandler.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/TileErrorHandler.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/TileErrorHandler.java
index 5d602cbdb9..bdb4052f99 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/TileErrorHandler.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/TileErrorHandler.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.logging.LogRecord;
 import java.awt.image.RenderedImage;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/TileOpExecutor.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/TileOpExecutor.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/TileOpExecutor.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/TileOpExecutor.java
index c9cea85594..0b1ea180b9 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/TileOpExecutor.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/TileOpExecutor.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.logging.Level;
 import java.util.logging.LogRecord;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/TilePlaceholder.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/TilePlaceholder.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/TilePlaceholder.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/TilePlaceholder.java
index 634f590ab9..66e60730df 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/TilePlaceholder.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/TilePlaceholder.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.Arrays;
 import java.util.Objects;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/TiledImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/TiledImage.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/TiledImage.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/TiledImage.java
index ad295be861..99acb59bec 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/TiledImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/TiledImage.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.Map;
 import java.awt.Image;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/WritableTiledImage.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/WritableTiledImage.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/WritableTiledImage.java
rename to 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/WritableTiledImage.java
index 693434f6a9..7d4e77f1e5 100644
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/privy/WritableTiledImage.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/WritableTiledImage.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.Map;
 import java.util.LinkedHashMap;
diff --git 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/package-info.java
 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/package-info.java
new file mode 100644
index 0000000000..76def35429
--- /dev/null
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/image/privy/package-info.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * A set of helper classes for rendered images shared by different modules.
+ * <dfn>Privy</dfn> means <q>something that is known or understood by only
+ * a select few individuals</q>.
+ *
+ * <p><strong>Do not use!</strong></p>
+ *
+ * This package is for internal use by SIS only. Classes in this package
+ * may change in incompatible ways in any future version without notice.
+ *
+ * @author  Martin Desruisseaux (Geomatys)
+ */
+package org.apache.sis.image.privy;
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/grid/GridCoverage2DTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/grid/GridCoverage2DTest.java
index 08f8dcffef..4721081340 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/grid/GridCoverage2DTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/grid/GridCoverage2DTest.java
@@ -29,7 +29,7 @@ import org.opengis.referencing.operation.MathTransform1D;
 import org.opengis.referencing.operation.MathTransform;
 import org.apache.sis.coverage.SampleDimension;
 import org.apache.sis.geometry.DirectPosition2D;
-import org.apache.sis.coverage.privy.RasterFactory;
+import org.apache.sis.image.privy.RasterFactory;
 import org.apache.sis.measure.NumberRange;
 import org.apache.sis.measure.Units;
 import org.apache.sis.referencing.operation.matrix.Matrix3;
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/grid/ResampledGridCoverageTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/grid/ResampledGridCoverageTest.java
index a80e08e3f3..7fbf205b5f 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/grid/ResampledGridCoverageTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/grid/ResampledGridCoverageTest.java
@@ -36,7 +36,7 @@ import org.apache.sis.geometry.Envelope2D;
 import org.apache.sis.geometry.DirectPosition2D;
 import org.apache.sis.geometry.ImmutableEnvelope;
 import org.apache.sis.image.Interpolation;
-import org.apache.sis.coverage.privy.TiledImage;
+import org.apache.sis.image.privy.TiledImage;
 import org.apache.sis.referencing.CommonCRS;
 import org.apache.sis.referencing.privy.Formulas;
 import org.apache.sis.referencing.privy.AffineTransform2D;
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/grid/TranslatedGridCoverageTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/grid/TranslatedGridCoverageTest.java
index bd37c48745..ce5645ebca 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/grid/TranslatedGridCoverageTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/grid/TranslatedGridCoverageTest.java
@@ -20,7 +20,7 @@ import java.awt.image.BufferedImage;
 import java.awt.image.DataBuffer;
 import java.awt.image.WritableRaster;
 import org.apache.sis.referencing.operation.transform.MathTransforms;
-import org.apache.sis.coverage.privy.RasterFactory;
+import org.apache.sis.image.privy.RasterFactory;
 import org.apache.sis.geometry.DirectPosition2D;
 
 // Test dependencies
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/BandAggregateImageTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/BandAggregateImageTest.java
index af6862fcba..8dc757bea0 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/BandAggregateImageTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/BandAggregateImageTest.java
@@ -30,8 +30,8 @@ import java.awt.image.Raster;
 import java.awt.image.RenderedImage;
 import java.awt.image.WritableRaster;
 import java.awt.image.WritableRenderedImage;
-import org.apache.sis.coverage.privy.ImageUtilities;
-import org.apache.sis.coverage.privy.RasterFactory;
+import org.apache.sis.image.privy.ImageUtilities;
+import org.apache.sis.image.privy.RasterFactory;
 import org.apache.sis.util.ArraysExt;
 
 // Test dependencies
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/BandSelectImageTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/BandSelectImageTest.java
index a00a516df6..498d3ba9bb 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/BandSelectImageTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/BandSelectImageTest.java
@@ -26,8 +26,8 @@ import java.awt.image.RenderedImage;
 import java.awt.image.BufferedImage;
 import java.awt.image.ColorModel;
 import java.awt.image.IndexColorModel;
-import org.apache.sis.coverage.privy.ColorModelFactory;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ColorModelFactory;
+import org.apache.sis.image.privy.ImageUtilities;
 
 // Test dependencies
 import org.junit.jupiter.api.Test;
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/ImageOverlayTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/ImageOverlayTest.java
index 996e75f112..7fc9317e53 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/ImageOverlayTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/ImageOverlayTest.java
@@ -26,7 +26,7 @@ import java.awt.image.DataBuffer;
 import java.awt.image.RenderedImage;
 import java.awt.image.BufferedImage;
 import java.awt.image.WritableRaster;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 
 // Test dependencies
 import org.junit.jupiter.api.Test;
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/InterpolationTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/InterpolationTest.java
index 9b230e0c8c..62c59ac449 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/InterpolationTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/InterpolationTest.java
@@ -22,7 +22,7 @@ import java.awt.Dimension;
 import java.awt.image.DataBuffer;
 import java.awt.image.WritableRaster;
 import java.awt.image.BandedSampleModel;
-import org.apache.sis.coverage.privy.TiledImage;
+import org.apache.sis.image.privy.TiledImage;
 import org.apache.sis.util.privy.Numerics;
 
 // Test dependencies
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/MaskedImageTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/MaskedImageTest.java
index 6a085e4ca9..f32abbc009 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/MaskedImageTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/MaskedImageTest.java
@@ -30,7 +30,7 @@ import java.awt.image.IndexColorModel;
 import java.awt.image.Raster;
 import java.awt.image.RenderedImage;
 import java.awt.image.WritableRaster;
-import org.apache.sis.coverage.privy.TiledImage;
+import org.apache.sis.image.privy.TiledImage;
 import org.apache.sis.util.Debug;
 
 // Test dependencies
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/PlanarImageTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/PlanarImageTest.java
index 99340c365e..69fdadefb4 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/PlanarImageTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/PlanarImageTest.java
@@ -19,7 +19,7 @@ package org.apache.sis.image;
 import java.util.Random;
 import java.awt.Rectangle;
 import java.awt.image.DataBuffer;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 
 // Test dependencies
 import org.junit.jupiter.api.Test;
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/ResampledImageTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/ResampledImageTest.java
index c8881f96f2..c1c58a645c 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/ResampledImageTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/ResampledImageTest.java
@@ -31,7 +31,7 @@ import java.awt.image.RenderedImage;
 import java.awt.image.WritableRaster;
 import java.awt.geom.AffineTransform;
 import java.awt.geom.NoninvertibleTransformException;
-import org.apache.sis.coverage.privy.RasterFactory;
+import org.apache.sis.image.privy.RasterFactory;
 import org.apache.sis.referencing.privy.AffineTransform2D;
 
 // Test dependencies
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/StatisticsCalculatorTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/StatisticsCalculatorTest.java
index 92b58f6206..d4adb1bdc3 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/StatisticsCalculatorTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/StatisticsCalculatorTest.java
@@ -35,7 +35,7 @@ import org.apache.sis.test.TestCaseWithLogs;
 
 /**
  * Tests {@link StatisticsCalculator}. This will also (indirectly) tests
- * {@link org.apache.sis.coverage.privy.TileOpExecutor} with multi-threading.
+ * {@link org.apache.sis.image.privy.TileOpExecutor} with multi-threading.
  *
  * @author  Martin Desruisseaux (Geomatys)
  */
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/TiledImageMock.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/TiledImageMock.java
index 12d9d0f51e..b32a9d146a 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/TiledImageMock.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/TiledImageMock.java
@@ -36,8 +36,8 @@ import java.awt.image.SampleModel;
 import java.awt.image.TileObserver;
 import java.awt.image.WritableRaster;
 import java.awt.image.WritableRenderedImage;
-import org.apache.sis.coverage.privy.ImageUtilities;
-import org.apache.sis.coverage.privy.WritableTiledImage;
+import org.apache.sis.image.privy.ImageUtilities;
+import org.apache.sis.image.privy.WritableTiledImage;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.pending.jdk.JDK18;
 
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/privy/ColorModelBuilderTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/privy/ColorModelBuilderTest.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/privy/ColorModelBuilderTest.java
rename to 
endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/privy/ColorModelBuilderTest.java
index c031e3c3d6..e4eeb8bbd2 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/privy/ColorModelBuilderTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/privy/ColorModelBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.List;
 import java.util.AbstractMap.SimpleEntry;
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/privy/ImageUtilitiesTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/privy/ImageUtilitiesTest.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/privy/ImageUtilitiesTest.java
rename to 
endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/privy/ImageUtilitiesTest.java
index 7934f1b83e..5e18396cbe 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/privy/ImageUtilitiesTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/privy/ImageUtilitiesTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.awt.Rectangle;
 import java.awt.geom.AffineTransform;
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/privy/SampleModelBuilderTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/privy/SampleModelBuilderTest.java
similarity index 99%
rename from 
endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/privy/SampleModelBuilderTest.java
rename to 
endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/privy/SampleModelBuilderTest.java
index 3619d6157a..671f47f0c1 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/privy/SampleModelBuilderTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/privy/SampleModelBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.awt.Dimension;
 import java.awt.image.DataBuffer;
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/privy/ScaledColorSpaceTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/privy/ScaledColorSpaceTest.java
similarity index 98%
rename from 
endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/privy/ScaledColorSpaceTest.java
rename to 
endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/privy/ScaledColorSpaceTest.java
index 58dc336cf2..665f350868 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/coverage/privy/ScaledColorSpaceTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/privy/ScaledColorSpaceTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.coverage.privy;
+package org.apache.sis.image.privy;
 
 import java.util.Random;
 import java.awt.Transparency;
diff --git 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/processing/isoline/IsolinesTest.java
 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/processing/isoline/IsolinesTest.java
index 6b54aa3a7a..09fe78d784 100644
--- 
a/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/processing/isoline/IsolinesTest.java
+++ 
b/endorsed/src/org.apache.sis.feature/test/org/apache/sis/image/processing/isoline/IsolinesTest.java
@@ -23,7 +23,7 @@ import java.awt.image.DataBuffer;
 import java.awt.image.BufferedImage;
 import java.awt.image.WritableRaster;
 import org.opengis.referencing.operation.TransformException;
-import org.apache.sis.coverage.privy.RasterFactory;
+import org.apache.sis.image.privy.RasterFactory;
 
 // Test dependencies
 import org.junit.jupiter.api.Test;
diff --git 
a/endorsed/src/org.apache.sis.portrayal/main/org/apache/sis/map/coverage/RenderingData.java
 
b/endorsed/src/org.apache.sis.portrayal/main/org/apache/sis/map/coverage/RenderingData.java
index c52769e002..18210141eb 100644
--- 
a/endorsed/src/org.apache.sis.portrayal/main/org/apache/sis/map/coverage/RenderingData.java
+++ 
b/endorsed/src/org.apache.sis.portrayal/main/org/apache/sis/map/coverage/RenderingData.java
@@ -53,9 +53,9 @@ import org.apache.sis.image.ImageLayout;
 import org.apache.sis.image.PlanarImage;
 import org.apache.sis.image.ErrorHandler;
 import org.apache.sis.image.ImageProcessor;
+import org.apache.sis.image.privy.ColorModelType;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.coverage.privy.SampleDimensions;
-import org.apache.sis.coverage.privy.ColorModelType;
-import org.apache.sis.coverage.privy.ImageUtilities;
 import org.apache.sis.referencing.CRS;
 import org.apache.sis.referencing.privy.WraparoundApplicator;
 import org.apache.sis.system.Modules;
diff --git 
a/endorsed/src/org.apache.sis.portrayal/main/org/apache/sis/map/coverage/RenderingWorkaround.java
 
b/endorsed/src/org.apache.sis.portrayal/main/org/apache/sis/map/coverage/RenderingWorkaround.java
index 523bef2553..39855e321e 100644
--- 
a/endorsed/src/org.apache.sis.portrayal/main/org/apache/sis/map/coverage/RenderingWorkaround.java
+++ 
b/endorsed/src/org.apache.sis.portrayal/main/org/apache/sis/map/coverage/RenderingWorkaround.java
@@ -25,7 +25,7 @@ import java.awt.image.RenderedImage;
 import java.awt.image.SampleModel;
 import java.awt.image.WritableRaster;
 import java.util.Vector;
-import org.apache.sis.coverage.privy.TilePlaceholder;
+import org.apache.sis.image.privy.TilePlaceholder;
 
 
 /**
diff --git 
a/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/CompressedSubset.java
 
b/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/CompressedSubset.java
index 02988462ce..d39bcde5c3 100644
--- 
a/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/CompressedSubset.java
+++ 
b/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/CompressedSubset.java
@@ -25,7 +25,7 @@ import static java.lang.Math.toIntExact;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.base.TiledGridResource;
 import org.apache.sis.storage.geotiff.inflater.Inflater;
-import org.apache.sis.coverage.privy.RasterFactory;
+import org.apache.sis.image.privy.RasterFactory;
 import org.apache.sis.image.DataType;
 
 
diff --git 
a/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/DataSubset.java
 
b/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/DataSubset.java
index b64a104605..a041e4109c 100644
--- 
a/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/DataSubset.java
+++ 
b/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/DataSubset.java
@@ -42,9 +42,9 @@ import org.apache.sis.io.stream.HyperRectangleReader;
 import org.apache.sis.io.stream.ChannelDataInput;
 import org.apache.sis.storage.base.TiledGridCoverage;
 import org.apache.sis.storage.base.TiledGridResource;
-import org.apache.sis.coverage.privy.TilePlaceholder;
-import org.apache.sis.coverage.privy.ImageUtilities;
-import org.apache.sis.coverage.privy.RasterFactory;
+import org.apache.sis.image.privy.TilePlaceholder;
+import org.apache.sis.image.privy.ImageUtilities;
+import org.apache.sis.image.privy.RasterFactory;
 import org.apache.sis.storage.geotiff.base.Resources;
 import org.apache.sis.storage.geotiff.reader.ReversedBitsChannel;
 import org.apache.sis.util.resources.Errors;
diff --git 
a/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/ImageFileDirectory.java
 
b/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/ImageFileDirectory.java
index 6136be8c22..8eae81ae1a 100644
--- 
a/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/ImageFileDirectory.java
+++ 
b/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/ImageFileDirectory.java
@@ -53,9 +53,9 @@ import org.apache.sis.io.stream.ChannelDataInput;
 import org.apache.sis.coverage.SampleDimension;
 import org.apache.sis.coverage.grid.GridGeometry;
 import org.apache.sis.coverage.grid.GridExtent;
-import org.apache.sis.coverage.privy.ColorModelBuilder;
-import org.apache.sis.coverage.privy.ColorModelFactory;
-import org.apache.sis.coverage.privy.SampleModelBuilder;
+import org.apache.sis.image.privy.ColorModelBuilder;
+import org.apache.sis.image.privy.ColorModelFactory;
+import org.apache.sis.image.privy.SampleModelBuilder;
 import org.apache.sis.util.Numbers;
 import org.apache.sis.util.CharSequences;
 import org.apache.sis.util.resources.Vocabulary;
diff --git 
a/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/Writer.java
 
b/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/Writer.java
index 6801c886f5..495927a0e1 100644
--- 
a/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/Writer.java
+++ 
b/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/Writer.java
@@ -43,7 +43,7 @@ import org.opengis.referencing.operation.TransformException;
 import org.apache.sis.image.ImageProcessor;
 import org.apache.sis.coverage.grid.GridGeometry;
 import org.apache.sis.coverage.grid.IncompleteGridGeometryException;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.DataStoreReferencingException;
 import org.apache.sis.storage.IncompatibleResourceException;
diff --git 
a/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/writer/ReformattedImage.java
 
b/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/writer/ReformattedImage.java
index 5e073e170d..0a9e64a32c 100644
--- 
a/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/writer/ReformattedImage.java
+++ 
b/endorsed/src/org.apache.sis.storage.geotiff/main/org/apache/sis/storage/geotiff/writer/ReformattedImage.java
@@ -30,8 +30,8 @@ import org.apache.sis.pending.jdk.JDK18;
 import org.apache.sis.image.ImageLayout;
 import org.apache.sis.image.PlanarImage;
 import org.apache.sis.image.ImageProcessor;
-import org.apache.sis.coverage.privy.ImageUtilities;
-import org.apache.sis.coverage.privy.SampleModelBuilder;
+import org.apache.sis.image.privy.ImageUtilities;
+import org.apache.sis.image.privy.SampleModelBuilder;
 import org.apache.sis.io.stream.HyperRectangleWriter;
 
 
diff --git 
a/endorsed/src/org.apache.sis.storage.geotiff/test/org/apache/sis/storage/geotiff/WriterTest.java
 
b/endorsed/src/org.apache.sis.storage.geotiff/test/org/apache/sis/storage/geotiff/WriterTest.java
index 0a1f93a1ff..025b5d96d0 100644
--- 
a/endorsed/src/org.apache.sis.storage.geotiff/test/org/apache/sis/storage/geotiff/WriterTest.java
+++ 
b/endorsed/src/org.apache.sis.storage.geotiff/test/org/apache/sis/storage/geotiff/WriterTest.java
@@ -41,7 +41,7 @@ import org.apache.sis.storage.geotiff.base.Tags;
 import org.apache.sis.coverage.grid.GridExtent;
 import org.apache.sis.coverage.grid.GridGeometry;
 import org.apache.sis.coverage.grid.GridOrientation;
-import org.apache.sis.coverage.privy.ColorModelBuilder;
+import org.apache.sis.image.privy.ColorModelBuilder;
 import org.apache.sis.geometry.Envelope2D;
 import org.apache.sis.image.DataType;
 
diff --git 
a/endorsed/src/org.apache.sis.storage.netcdf/main/org/apache/sis/storage/netcdf/base/Convention.java
 
b/endorsed/src/org.apache.sis.storage.netcdf/main/org/apache/sis/storage/netcdf/base/Convention.java
index e5f6a72d88..e6c8d59684 100644
--- 
a/endorsed/src/org.apache.sis.storage.netcdf/main/org/apache/sis/storage/netcdf/base/Convention.java
+++ 
b/endorsed/src/org.apache.sis.storage.netcdf/main/org/apache/sis/storage/netcdf/base/Convention.java
@@ -36,7 +36,7 @@ import org.apache.sis.referencing.CommonCRS;
 import org.apache.sis.referencing.operation.transform.TransferFunction;
 import org.apache.sis.referencing.datum.BursaWolfParameters;
 import org.apache.sis.coverage.Category;
-import org.apache.sis.coverage.privy.ColorModelFactory;
+import org.apache.sis.image.privy.ColorModelFactory;
 import org.apache.sis.measure.MeasurementRange;
 import org.apache.sis.measure.NumberRange;
 import org.apache.sis.math.Vector;
diff --git 
a/endorsed/src/org.apache.sis.storage.netcdf/main/org/apache/sis/storage/netcdf/base/RasterResource.java
 
b/endorsed/src/org.apache.sis.storage.netcdf/main/org/apache/sis/storage/netcdf/base/RasterResource.java
index af58a891be..4b710c7a6e 100644
--- 
a/endorsed/src/org.apache.sis.storage.netcdf/main/org/apache/sis/storage/netcdf/base/RasterResource.java
+++ 
b/endorsed/src/org.apache.sis.storage.netcdf/main/org/apache/sis/storage/netcdf/base/RasterResource.java
@@ -44,7 +44,7 @@ import org.apache.sis.util.privy.Strings;
 import org.apache.sis.coverage.SampleDimension;
 import org.apache.sis.coverage.IllegalSampleDimensionException;
 import org.apache.sis.coverage.privy.RangeArgument;
-import org.apache.sis.coverage.privy.RasterFactory;
+import org.apache.sis.image.privy.RasterFactory;
 import org.apache.sis.coverage.grid.GridExtent;
 import org.apache.sis.coverage.grid.GridCoverage;
 import org.apache.sis.coverage.grid.GridGeometry;
diff --git 
a/endorsed/src/org.apache.sis.storage.sql/main/org/apache/sis/storage/sql/postgis/RasterReader.java
 
b/endorsed/src/org.apache.sis.storage.sql/main/org/apache/sis/storage/sql/postgis/RasterReader.java
index 1d7a0a3ecf..ecb5320c18 100644
--- 
a/endorsed/src/org.apache.sis.storage.sql/main/org/apache/sis/storage/sql/postgis/RasterReader.java
+++ 
b/endorsed/src/org.apache.sis.storage.sql/main/org/apache/sis/storage/sql/postgis/RasterReader.java
@@ -44,9 +44,9 @@ import org.apache.sis.coverage.grid.GridCoverage;
 import org.apache.sis.coverage.grid.GridCoverage2D;
 import org.apache.sis.coverage.grid.GridExtent;
 import org.apache.sis.coverage.grid.GridGeometry;
-import org.apache.sis.coverage.privy.ColorModelBuilder;
-import org.apache.sis.coverage.privy.ColorModelFactory;
-import org.apache.sis.coverage.privy.ObservableImage;
+import org.apache.sis.image.privy.ColorModelBuilder;
+import org.apache.sis.image.privy.ColorModelFactory;
+import org.apache.sis.image.privy.ObservableImage;
 import org.apache.sis.referencing.CRS;
 import org.apache.sis.referencing.privy.AffineTransform2D;
 import org.apache.sis.io.stream.ChannelDataInput;
diff --git 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/ConcatenatedGridCoverage.java
 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/ConcatenatedGridCoverage.java
index 7ce1c79e10..46d2ccac74 100644
--- 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/ConcatenatedGridCoverage.java
+++ 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/ConcatenatedGridCoverage.java
@@ -32,7 +32,7 @@ import org.apache.sis.storage.internal.Resources;
 import org.apache.sis.util.privy.Numerics;
 import org.apache.sis.util.collection.Cache;
 import org.apache.sis.util.logging.Logging;
-import static org.apache.sis.coverage.privy.ImageUtilities.LOGGER;
+import static org.apache.sis.image.privy.ImageUtilities.LOGGER;
 
 // Specific to the geoapi-3.1 and geoapi-4.0 branches:
 import org.opengis.coverage.CannotEvaluateException;
diff --git 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/TiledDeferredImage.java
 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/TiledDeferredImage.java
index f81ca880b9..1e6a7f10b9 100644
--- 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/TiledDeferredImage.java
+++ 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/TiledDeferredImage.java
@@ -20,7 +20,7 @@ import java.util.Map;
 import java.awt.Rectangle;
 import java.awt.image.ColorModel;
 import java.awt.image.Raster;
-import org.apache.sis.coverage.privy.BatchComputedImage;
+import org.apache.sis.image.privy.BatchComputedImage;
 
 
 /**
diff --git 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/TiledGridCoverage.java
 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/TiledGridCoverage.java
index 7735bd2750..5a5f56bcc8 100644
--- 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/TiledGridCoverage.java
+++ 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/TiledGridCoverage.java
@@ -40,8 +40,8 @@ import org.opengis.metadata.spatial.DimensionNameType;
 import org.apache.sis.coverage.grid.GridCoverage;
 import org.apache.sis.coverage.grid.GridExtent;
 import org.apache.sis.coverage.grid.DisjointExtentException;
-import org.apache.sis.coverage.privy.DeferredProperty;
-import org.apache.sis.coverage.privy.TiledImage;
+import org.apache.sis.image.privy.DeferredProperty;
+import org.apache.sis.image.privy.TiledImage;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.tiling.TileMatrixSet;
 import org.apache.sis.storage.internal.Resources;
diff --git 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/TiledGridResource.java
 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/TiledGridResource.java
index 6481a08017..f62048a07d 100644
--- 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/TiledGridResource.java
+++ 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/TiledGridResource.java
@@ -36,9 +36,9 @@ import org.apache.sis.coverage.grid.GridDerivation;
 import org.apache.sis.coverage.grid.GridExtent;
 import org.apache.sis.coverage.grid.GridGeometry;
 import org.apache.sis.coverage.grid.GridRoundingMode;
-import org.apache.sis.coverage.privy.ColorModelFactory;
-import org.apache.sis.coverage.privy.ImageUtilities;
 import org.apache.sis.coverage.privy.RangeArgument;
+import org.apache.sis.image.privy.ColorModelFactory;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.image.DataType;
 import org.apache.sis.storage.Resource;
 import org.apache.sis.storage.AbstractGridCoverageResource;
diff --git 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/esri/RasterStore.java
 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/esri/RasterStore.java
index 31d0accdbd..ba0a60df87 100644
--- 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/esri/RasterStore.java
+++ 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/esri/RasterStore.java
@@ -42,10 +42,10 @@ import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.StorageConnector;
 import org.apache.sis.storage.base.PRJDataStore;
 import org.apache.sis.storage.base.MetadataBuilder;
-import org.apache.sis.coverage.privy.ColorModelFactory;
-import org.apache.sis.coverage.privy.ColorModelBuilder;
-import org.apache.sis.coverage.privy.ImageUtilities;
-import org.apache.sis.coverage.privy.ObservableImage;
+import org.apache.sis.image.privy.ColorModelFactory;
+import org.apache.sis.image.privy.ColorModelBuilder;
+import org.apache.sis.image.privy.ImageUtilities;
+import org.apache.sis.image.privy.ObservableImage;
 import org.apache.sis.coverage.privy.RangeArgument;
 import org.apache.sis.util.CharSequences;
 import org.apache.sis.util.ArraysExt;
diff --git 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/esri/RawRasterReader.java
 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/esri/RawRasterReader.java
index 2caf4b8ad3..987c775f89 100644
--- 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/esri/RawRasterReader.java
+++ 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/esri/RawRasterReader.java
@@ -34,8 +34,8 @@ import org.apache.sis.coverage.grid.GridExtent;
 import org.apache.sis.coverage.grid.GridGeometry;
 import org.apache.sis.coverage.grid.GridDerivation;
 import org.apache.sis.coverage.privy.RangeArgument;
-import org.apache.sis.coverage.privy.RasterFactory;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.RasterFactory;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.io.stream.ChannelDataInput;
 import org.apache.sis.io.stream.HyperRectangleReader;
 import org.apache.sis.io.stream.Region;
diff --git 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/image/WorldFileResource.java
 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/image/WorldFileResource.java
index 244875d69d..7ba8f765cf 100644
--- 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/image/WorldFileResource.java
+++ 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/image/WorldFileResource.java
@@ -45,7 +45,7 @@ import org.apache.sis.storage.internal.Resources;
 import org.apache.sis.storage.base.StoreResource;
 import org.apache.sis.io.stream.IOUtilities;
 import org.apache.sis.coverage.privy.RangeArgument;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.privy.UnmodifiableArrayList;
 import org.apache.sis.util.resources.Vocabulary;
diff --git 
a/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/coverage/CoverageCanvas.java
 
b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/coverage/CoverageCanvas.java
index 2f5b12e30e..e49060e054 100644
--- 
a/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/coverage/CoverageCanvas.java
+++ 
b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/coverage/CoverageCanvas.java
@@ -68,7 +68,7 @@ import org.apache.sis.gui.map.MapCanvas;
 import org.apache.sis.gui.map.MapCanvasAWT;
 import org.apache.sis.portrayal.RenderException;
 import org.apache.sis.map.coverage.RenderingWorkaround;
-import org.apache.sis.coverage.privy.TileErrorHandler;
+import org.apache.sis.image.privy.TileErrorHandler;
 import org.apache.sis.image.processing.isoline.Isolines;
 import org.apache.sis.gui.internal.BackgroundThreads;
 import org.apache.sis.gui.internal.ExceptionReporter;
diff --git 
a/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/coverage/GridView.java
 
b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/coverage/GridView.java
index af231ae564..496cf9bec2 100644
--- 
a/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/coverage/GridView.java
+++ 
b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/coverage/GridView.java
@@ -45,7 +45,7 @@ import org.apache.sis.gui.internal.BackgroundThreads;
 import org.apache.sis.gui.internal.LogHandler;
 import org.apache.sis.gui.internal.Styles;
 import org.apache.sis.gui.internal.ExceptionReporter;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 
 
 /**
diff --git 
a/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/coverage/IsolineRenderer.java
 
b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/coverage/IsolineRenderer.java
index 1a1bc18ec0..8781d8dfe8 100644
--- 
a/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/coverage/IsolineRenderer.java
+++ 
b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/coverage/IsolineRenderer.java
@@ -40,7 +40,7 @@ import org.opengis.referencing.operation.TransformException;
 import org.apache.sis.gui.controls.ColorRamp;
 import org.apache.sis.gui.controls.ValueColorMapper.Step;
 import org.apache.sis.image.processing.isoline.Isolines;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.geometry.wrapper.j2d.EmptyShape;
 import org.apache.sis.geometry.wrapper.j2d.FlatShape;
 import org.apache.sis.util.ArraysExt;
diff --git 
a/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/internal/ImageConverter.java
 
b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/internal/ImageConverter.java
index 24147fb9e8..bd67ac7abc 100644
--- 
a/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/internal/ImageConverter.java
+++ 
b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/internal/ImageConverter.java
@@ -36,8 +36,8 @@ import org.apache.sis.image.Colorizer;
 import org.apache.sis.image.ImageProcessor;
 import org.apache.sis.image.PlanarImage;
 import org.apache.sis.map.coverage.RenderingWorkaround;
-import org.apache.sis.coverage.privy.ColorModelFactory;
-import org.apache.sis.coverage.privy.ImageUtilities;
+import org.apache.sis.image.privy.ColorModelFactory;
+import org.apache.sis.image.privy.ImageUtilities;
 import org.apache.sis.util.privy.Numerics;
 import org.apache.sis.util.logging.Logging;
 import org.apache.sis.measure.NumberRange;
diff --git 
a/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/map/MapCanvasAWT.java 
b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/map/MapCanvasAWT.java
index 79565be6ce..5fa0183512 100644
--- 
a/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/map/MapCanvasAWT.java
+++ 
b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/map/MapCanvasAWT.java
@@ -41,7 +41,7 @@ import javafx.scene.image.WritableImage;
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.SimpleObjectProperty;
 import javafx.util.Callback;
-import org.apache.sis.coverage.privy.ColorModelFactory;
+import org.apache.sis.image.privy.ColorModelFactory;
 import org.apache.sis.system.Configuration;
 
 
diff --git 
a/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Band.java
 
b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Band.java
index 9e46ccdac1..c630294db0 100644
--- 
a/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Band.java
+++ 
b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Band.java
@@ -33,7 +33,7 @@ import org.opengis.referencing.operation.MathTransform1D;
 import org.apache.sis.referencing.operation.transform.MathTransforms;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.coverage.SampleDimension;
-import org.apache.sis.coverage.privy.RasterFactory;
+import org.apache.sis.image.privy.RasterFactory;
 import org.apache.sis.measure.NumberRange;
 import org.apache.sis.measure.Units;
 
diff --git 
a/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/TiledResource.java
 
b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/TiledResource.java
index 3cb7cf48ce..94750a40b3 100644
--- 
a/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/TiledResource.java
+++ 
b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/TiledResource.java
@@ -43,8 +43,8 @@ import org.apache.sis.coverage.grid.GridExtent;
 import org.apache.sis.coverage.grid.GridGeometry;
 import org.apache.sis.coverage.grid.GridCoverage;
 import org.apache.sis.coverage.grid.PixelInCell;
-import org.apache.sis.coverage.privy.ColorModelBuilder;
-import org.apache.sis.coverage.privy.ColorModelFactory;
+import org.apache.sis.image.privy.ColorModelBuilder;
+import org.apache.sis.image.privy.ColorModelFactory;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.DataStoreReferencingException;
 import org.apache.sis.storage.base.MetadataBuilder;


Reply via email to