diff --git a/src/main/java/org/apache/commons/sanselan/ColorTools.java b/src/main/java/org/apache/commons/imaging/ColorTools.java
similarity index 99%
rename from src/main/java/org/apache/commons/sanselan/ColorTools.java
rename to src/main/java/org/apache/commons/imaging/ColorTools.java
index 1470c82..d006697 100644
--- a/src/main/java/org/apache/commons/sanselan/ColorTools.java
+++ b/src/main/java/org/apache/commons/imaging/ColorTools.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan;
+package org.apache.commons.imaging;
 
 import java.awt.RenderingHints;
 import java.awt.color.ColorSpace;
diff --git a/src/main/java/org/apache/commons/sanselan/FormatCompliance.java b/src/main/java/org/apache/commons/imaging/FormatCompliance.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/FormatCompliance.java
rename to src/main/java/org/apache/commons/imaging/FormatCompliance.java
index 56096a7..96b4f32 100644
--- a/src/main/java/org/apache/commons/sanselan/FormatCompliance.java
+++ b/src/main/java/org/apache/commons/imaging/FormatCompliance.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan;
+package org.apache.commons.imaging;
 
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
diff --git a/src/main/java/org/apache/commons/sanselan/ImageDump.java b/src/main/java/org/apache/commons/imaging/ImageDump.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/ImageDump.java
rename to src/main/java/org/apache/commons/imaging/ImageDump.java
index 7ecf92e..64f1330 100644
--- a/src/main/java/org/apache/commons/sanselan/ImageDump.java
+++ b/src/main/java/org/apache/commons/imaging/ImageDump.java
@@ -14,15 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan;
+package org.apache.commons.imaging;
 
 import java.awt.color.ColorSpace;
 import java.awt.color.ICC_ColorSpace;
 import java.awt.color.ICC_Profile;
 import java.awt.image.BufferedImage;
 
-import org.apache.commons.sanselan.icc.IccProfileInfo;
-import org.apache.commons.sanselan.icc.IccProfileParser;
+import org.apache.commons.imaging.icc.IccProfileInfo;
+import org.apache.commons.imaging.icc.IccProfileParser;
 
 public class ImageDump
 {
diff --git a/src/main/java/org/apache/commons/sanselan/ImageFormat.java b/src/main/java/org/apache/commons/imaging/ImageFormat.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/ImageFormat.java
rename to src/main/java/org/apache/commons/imaging/ImageFormat.java
index a82d284..f6d9e4f 100644
--- a/src/main/java/org/apache/commons/sanselan/ImageFormat.java
+++ b/src/main/java/org/apache/commons/imaging/ImageFormat.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan;
+package org.apache.commons.imaging;
 
 public class ImageFormat
 {
diff --git a/src/main/java/org/apache/commons/sanselan/ImageInfo.java b/src/main/java/org/apache/commons/imaging/ImageInfo.java
similarity index 99%
rename from src/main/java/org/apache/commons/sanselan/ImageInfo.java
rename to src/main/java/org/apache/commons/imaging/ImageInfo.java
index a6f90cd..a8bd228 100644
--- a/src/main/java/org/apache/commons/sanselan/ImageInfo.java
+++ b/src/main/java/org/apache/commons/imaging/ImageInfo.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan;
+package org.apache.commons.imaging;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
diff --git a/src/main/java/org/apache/commons/sanselan/ImageParser.java b/src/main/java/org/apache/commons/imaging/ImageParser.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/ImageParser.java
rename to src/main/java/org/apache/commons/imaging/ImageParser.java
index 262df33..1937014 100644
--- a/src/main/java/org/apache/commons/sanselan/ImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/ImageParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan;
+package org.apache.commons.imaging;
 
 import java.awt.Dimension;
 import java.awt.image.BufferedImage;
@@ -27,29 +27,29 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.common.BinaryFileParser;
-import org.apache.commons.sanselan.common.IBufferedImageFactory;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.SimpleBufferedImageFactory;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceArray;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceFile;
-import org.apache.commons.sanselan.formats.bmp.BmpImageParser;
-import org.apache.commons.sanselan.formats.dcx.DcxImageParser;
-import org.apache.commons.sanselan.formats.gif.GifImageParser;
-import org.apache.commons.sanselan.formats.icns.IcnsImageParser;
-import org.apache.commons.sanselan.formats.ico.IcoImageParser;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageParser;
-import org.apache.commons.sanselan.formats.pcx.PcxImageParser;
-import org.apache.commons.sanselan.formats.png.PngImageParser;
-import org.apache.commons.sanselan.formats.pnm.PnmImageParser;
-import org.apache.commons.sanselan.formats.psd.PsdImageParser;
-import org.apache.commons.sanselan.formats.rgbe.RgbeImageParser;
-import org.apache.commons.sanselan.formats.tiff.TiffImageParser;
-import org.apache.commons.sanselan.formats.wbmp.WbmpImageParser;
-import org.apache.commons.sanselan.formats.xbm.XbmImageParser;
-import org.apache.commons.sanselan.formats.xpm.XpmImageParser;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.common.BinaryFileParser;
+import org.apache.commons.imaging.common.IBufferedImageFactory;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.SimpleBufferedImageFactory;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceArray;
+import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
+import org.apache.commons.imaging.formats.bmp.BmpImageParser;
+import org.apache.commons.imaging.formats.dcx.DcxImageParser;
+import org.apache.commons.imaging.formats.gif.GifImageParser;
+import org.apache.commons.imaging.formats.icns.IcnsImageParser;
+import org.apache.commons.imaging.formats.ico.IcoImageParser;
+import org.apache.commons.imaging.formats.jpeg.JpegImageParser;
+import org.apache.commons.imaging.formats.pcx.PcxImageParser;
+import org.apache.commons.imaging.formats.png.PngImageParser;
+import org.apache.commons.imaging.formats.pnm.PnmImageParser;
+import org.apache.commons.imaging.formats.psd.PsdImageParser;
+import org.apache.commons.imaging.formats.rgbe.RgbeImageParser;
+import org.apache.commons.imaging.formats.tiff.TiffImageParser;
+import org.apache.commons.imaging.formats.wbmp.WbmpImageParser;
+import org.apache.commons.imaging.formats.xbm.XbmImageParser;
+import org.apache.commons.imaging.formats.xpm.XpmImageParser;
+import org.apache.commons.imaging.util.Debug;
 
 public abstract class ImageParser extends BinaryFileParser implements
         SanselanConstants
diff --git a/src/main/java/org/apache/commons/sanselan/ImageReadException.java b/src/main/java/org/apache/commons/imaging/ImageReadException.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/ImageReadException.java
rename to src/main/java/org/apache/commons/imaging/ImageReadException.java
index e427360..8fae55c 100644
--- a/src/main/java/org/apache/commons/sanselan/ImageReadException.java
+++ b/src/main/java/org/apache/commons/imaging/ImageReadException.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan;
+package org.apache.commons.imaging;
 
 public class ImageReadException extends SanselanException
 {
diff --git a/src/main/java/org/apache/commons/sanselan/ImageWriteException.java b/src/main/java/org/apache/commons/imaging/ImageWriteException.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/ImageWriteException.java
rename to src/main/java/org/apache/commons/imaging/ImageWriteException.java
index b923d6a..26140e9 100644
--- a/src/main/java/org/apache/commons/sanselan/ImageWriteException.java
+++ b/src/main/java/org/apache/commons/imaging/ImageWriteException.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan;
+package org.apache.commons.imaging;
 
 public class ImageWriteException extends SanselanException
 {
diff --git a/src/main/java/org/apache/commons/sanselan/PixelDensity.java b/src/main/java/org/apache/commons/imaging/PixelDensity.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/PixelDensity.java
rename to src/main/java/org/apache/commons/imaging/PixelDensity.java
index 1d72147..055869b 100644
--- a/src/main/java/org/apache/commons/sanselan/PixelDensity.java
+++ b/src/main/java/org/apache/commons/imaging/PixelDensity.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan;
+package org.apache.commons.imaging;
 
 public class PixelDensity {
     private double horizontalDensity;
diff --git a/src/main/java/org/apache/commons/sanselan/Sanselan.java b/src/main/java/org/apache/commons/imaging/Sanselan.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/Sanselan.java
rename to src/main/java/org/apache/commons/imaging/Sanselan.java
index d122a51..d9c3bbb 100644
--- a/src/main/java/org/apache/commons/sanselan/Sanselan.java
+++ b/src/main/java/org/apache/commons/imaging/Sanselan.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan;
+package org.apache.commons.imaging;
 
 import java.awt.Dimension;
 import java.awt.color.ICC_Profile;
@@ -30,14 +30,14 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceArray;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceFile;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceInputStream;
-import org.apache.commons.sanselan.icc.IccProfileInfo;
-import org.apache.commons.sanselan.icc.IccProfileParser;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceArray;
+import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
+import org.apache.commons.imaging.common.bytesource.ByteSourceInputStream;
+import org.apache.commons.imaging.icc.IccProfileInfo;
+import org.apache.commons.imaging.icc.IccProfileParser;
+import org.apache.commons.imaging.util.Debug;
 
 /**
  * The primary interface to the sanselan library.
diff --git a/src/main/java/org/apache/commons/sanselan/SanselanConstants.java b/src/main/java/org/apache/commons/imaging/SanselanConstants.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/SanselanConstants.java
rename to src/main/java/org/apache/commons/imaging/SanselanConstants.java
index 3e57544..e65bb85 100644
--- a/src/main/java/org/apache/commons/sanselan/SanselanConstants.java
+++ b/src/main/java/org/apache/commons/imaging/SanselanConstants.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan;
+package org.apache.commons.imaging;
 
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
 
 public interface SanselanConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/SanselanException.java b/src/main/java/org/apache/commons/imaging/SanselanException.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/SanselanException.java
rename to src/main/java/org/apache/commons/imaging/SanselanException.java
index 96133b8..aa8bcd0 100644
--- a/src/main/java/org/apache/commons/sanselan/SanselanException.java
+++ b/src/main/java/org/apache/commons/imaging/SanselanException.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan;
+package org.apache.commons.imaging;
 
 public class SanselanException extends Exception
 {
diff --git a/src/main/java/org/apache/commons/sanselan/color/ColorCieLab.java b/src/main/java/org/apache/commons/imaging/color/ColorCieLab.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/color/ColorCieLab.java
rename to src/main/java/org/apache/commons/imaging/color/ColorCieLab.java
index 5ba5be9..305a25e 100644
--- a/src/main/java/org/apache/commons/sanselan/color/ColorCieLab.java
+++ b/src/main/java/org/apache/commons/imaging/color/ColorCieLab.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.color;
+package org.apache.commons.imaging.color;
 
 public final class ColorCieLab
 {
diff --git a/src/main/java/org/apache/commons/sanselan/color/ColorCieLch.java b/src/main/java/org/apache/commons/imaging/color/ColorCieLch.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/color/ColorCieLch.java
rename to src/main/java/org/apache/commons/imaging/color/ColorCieLch.java
index 93abd68..bf58222 100644
--- a/src/main/java/org/apache/commons/sanselan/color/ColorCieLch.java
+++ b/src/main/java/org/apache/commons/imaging/color/ColorCieLch.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.color;
+package org.apache.commons.imaging.color;
 
 public final class ColorCieLch
 {
diff --git a/src/main/java/org/apache/commons/sanselan/color/ColorCieLuv.java b/src/main/java/org/apache/commons/imaging/color/ColorCieLuv.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/color/ColorCieLuv.java
rename to src/main/java/org/apache/commons/imaging/color/ColorCieLuv.java
index c847072..55551e7 100644
--- a/src/main/java/org/apache/commons/sanselan/color/ColorCieLuv.java
+++ b/src/main/java/org/apache/commons/imaging/color/ColorCieLuv.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.color;
+package org.apache.commons.imaging.color;
 
 public final class ColorCieLuv
 {
diff --git a/src/main/java/org/apache/commons/sanselan/color/ColorCmy.java b/src/main/java/org/apache/commons/imaging/color/ColorCmy.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/color/ColorCmy.java
rename to src/main/java/org/apache/commons/imaging/color/ColorCmy.java
index 9eebc07..7dfa0f1 100644
--- a/src/main/java/org/apache/commons/sanselan/color/ColorCmy.java
+++ b/src/main/java/org/apache/commons/imaging/color/ColorCmy.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.color;
+package org.apache.commons.imaging.color;
 
 public final class ColorCmy
 {
diff --git a/src/main/java/org/apache/commons/sanselan/color/ColorCmyk.java b/src/main/java/org/apache/commons/imaging/color/ColorCmyk.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/color/ColorCmyk.java
rename to src/main/java/org/apache/commons/imaging/color/ColorCmyk.java
index a4c1b6e..ced0c87 100644
--- a/src/main/java/org/apache/commons/sanselan/color/ColorCmyk.java
+++ b/src/main/java/org/apache/commons/imaging/color/ColorCmyk.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.color;
+package org.apache.commons.imaging.color;
 
 public final class ColorCmyk
 {
diff --git a/src/main/java/org/apache/commons/sanselan/color/ColorConversions.java b/src/main/java/org/apache/commons/imaging/color/ColorConversions.java
similarity index 99%
rename from src/main/java/org/apache/commons/sanselan/color/ColorConversions.java
rename to src/main/java/org/apache/commons/imaging/color/ColorConversions.java
index df453fa..aaa9db7 100644
--- a/src/main/java/org/apache/commons/sanselan/color/ColorConversions.java
+++ b/src/main/java/org/apache/commons/imaging/color/ColorConversions.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.color;
+package org.apache.commons.imaging.color;
 
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.util.Debug;
 
 public abstract class ColorConversions
 {
diff --git a/src/main/java/org/apache/commons/sanselan/color/ColorHsl.java b/src/main/java/org/apache/commons/imaging/color/ColorHsl.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/color/ColorHsl.java
rename to src/main/java/org/apache/commons/imaging/color/ColorHsl.java
index 29d8412..60f00e1 100644
--- a/src/main/java/org/apache/commons/sanselan/color/ColorHsl.java
+++ b/src/main/java/org/apache/commons/imaging/color/ColorHsl.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.color;
+package org.apache.commons.imaging.color;
 
 public final class ColorHsl
 {
diff --git a/src/main/java/org/apache/commons/sanselan/color/ColorHsv.java b/src/main/java/org/apache/commons/imaging/color/ColorHsv.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/color/ColorHsv.java
rename to src/main/java/org/apache/commons/imaging/color/ColorHsv.java
index 862bf3d..899e027 100644
--- a/src/main/java/org/apache/commons/sanselan/color/ColorHsv.java
+++ b/src/main/java/org/apache/commons/imaging/color/ColorHsv.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.color;
+package org.apache.commons.imaging.color;
 
 public final class ColorHsv
 {
diff --git a/src/main/java/org/apache/commons/sanselan/color/ColorHunterLab.java b/src/main/java/org/apache/commons/imaging/color/ColorHunterLab.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/color/ColorHunterLab.java
rename to src/main/java/org/apache/commons/imaging/color/ColorHunterLab.java
index e315f62..c16cf16 100644
--- a/src/main/java/org/apache/commons/sanselan/color/ColorHunterLab.java
+++ b/src/main/java/org/apache/commons/imaging/color/ColorHunterLab.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.color;
+package org.apache.commons.imaging.color;
 
 public final class ColorHunterLab
 {
diff --git a/src/main/java/org/apache/commons/sanselan/color/ColorXyz.java b/src/main/java/org/apache/commons/imaging/color/ColorXyz.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/color/ColorXyz.java
rename to src/main/java/org/apache/commons/imaging/color/ColorXyz.java
index 1f48f4a..3f523dc 100644
--- a/src/main/java/org/apache/commons/sanselan/color/ColorXyz.java
+++ b/src/main/java/org/apache/commons/imaging/color/ColorXyz.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.color;
+package org.apache.commons.imaging.color;
 
 public final class ColorXyz
 {
diff --git a/src/main/java/org/apache/commons/sanselan/common/BasicCParser.java b/src/main/java/org/apache/commons/imaging/common/BasicCParser.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/common/BasicCParser.java
rename to src/main/java/org/apache/commons/imaging/common/BasicCParser.java
index 75d48e9..baab3d7 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BasicCParser.java
+++ b/src/main/java/org/apache/commons/imaging/common/BasicCParser.java
@@ -13,7 +13,7 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -22,7 +22,7 @@
 import java.io.PushbackInputStream;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class BasicCParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/common/BinaryConstant.java b/src/main/java/org/apache/commons/imaging/common/BinaryConstant.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/common/BinaryConstant.java
rename to src/main/java/org/apache/commons/imaging/common/BinaryConstant.java
index 0a8d3ff..cc42eb2 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BinaryConstant.java
+++ b/src/main/java/org/apache/commons/imaging/common/BinaryConstant.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.io.IOException;
 import java.io.OutputStream;
diff --git a/src/main/java/org/apache/commons/sanselan/common/BinaryConstants.java b/src/main/java/org/apache/commons/imaging/common/BinaryConstants.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/common/BinaryConstants.java
rename to src/main/java/org/apache/commons/imaging/common/BinaryConstants.java
index 3314c8b..e326868 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BinaryConstants.java
+++ b/src/main/java/org/apache/commons/imaging/common/BinaryConstants.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 public interface BinaryConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/common/BinaryConversions.java b/src/main/java/org/apache/commons/imaging/common/BinaryConversions.java
similarity index 99%
rename from src/main/java/org/apache/commons/sanselan/common/BinaryConversions.java
rename to src/main/java/org/apache/commons/imaging/common/BinaryConversions.java
index f6b1eef..e78281d 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BinaryConversions.java
+++ b/src/main/java/org/apache/commons/imaging/common/BinaryConversions.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 public class BinaryConversions implements BinaryConstants {
     public static byte[] convertToByteArray(short[] values, int byteOrder) {
diff --git a/src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java b/src/main/java/org/apache/commons/imaging/common/BinaryFileFunctions.java
similarity index 99%
rename from src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java
rename to src/main/java/org/apache/commons/imaging/common/BinaryFileFunctions.java
index efeab86..269d2ef 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java
+++ b/src/main/java/org/apache/commons/imaging/common/BinaryFileFunctions.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -23,8 +23,8 @@
 import java.io.PrintWriter;
 import java.io.RandomAccessFile;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
 
 public class BinaryFileFunctions implements BinaryConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/common/BinaryFileParser.java b/src/main/java/org/apache/commons/imaging/common/BinaryFileParser.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/common/BinaryFileParser.java
rename to src/main/java/org/apache/commons/imaging/common/BinaryFileParser.java
index 6975971..97875ea 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BinaryFileParser.java
+++ b/src/main/java/org/apache/commons/imaging/common/BinaryFileParser.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class BinaryFileParser extends BinaryFileFunctions
 {
diff --git a/src/main/java/org/apache/commons/sanselan/common/BinaryInputStream.java b/src/main/java/org/apache/commons/imaging/common/BinaryInputStream.java
similarity index 99%
rename from src/main/java/org/apache/commons/sanselan/common/BinaryInputStream.java
rename to src/main/java/org/apache/commons/imaging/common/BinaryInputStream.java
index 0012bd1..b039c9d 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BinaryInputStream.java
+++ b/src/main/java/org/apache/commons/imaging/common/BinaryInputStream.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.RandomAccessFile;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class BinaryInputStream extends InputStream implements BinaryConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/common/BinaryOutputStream.java b/src/main/java/org/apache/commons/imaging/common/BinaryOutputStream.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/common/BinaryOutputStream.java
rename to src/main/java/org/apache/commons/imaging/common/BinaryOutputStream.java
index 5c92e2d..ca654e2 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BinaryOutputStream.java
+++ b/src/main/java/org/apache/commons/imaging/common/BinaryOutputStream.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.io.IOException;
 import java.io.OutputStream;
 
-import org.apache.commons.sanselan.ImageWriteException;
+import org.apache.commons.imaging.ImageWriteException;
 
 public class BinaryOutputStream extends OutputStream implements BinaryConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/common/BitArrayOutputStream.java b/src/main/java/org/apache/commons/imaging/common/BitArrayOutputStream.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/common/BitArrayOutputStream.java
rename to src/main/java/org/apache/commons/imaging/common/BitArrayOutputStream.java
index a0e1484..9b8cefe 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BitArrayOutputStream.java
+++ b/src/main/java/org/apache/commons/imaging/common/BitArrayOutputStream.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 public class BitArrayOutputStream {
     private byte[] buffer;
diff --git a/src/main/java/org/apache/commons/sanselan/common/BitInputStream.java b/src/main/java/org/apache/commons/imaging/common/BitInputStream.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/common/BitInputStream.java
rename to src/main/java/org/apache/commons/imaging/common/BitInputStream.java
index b5f740b..a84adbd 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BitInputStream.java
+++ b/src/main/java/org/apache/commons/imaging/common/BitInputStream.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/src/main/java/org/apache/commons/sanselan/common/BitInputStreamFlexible.java b/src/main/java/org/apache/commons/imaging/common/BitInputStreamFlexible.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/common/BitInputStreamFlexible.java
rename to src/main/java/org/apache/commons/imaging/common/BitInputStreamFlexible.java
index d846eba..20e509f 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BitInputStreamFlexible.java
+++ b/src/main/java/org/apache/commons/imaging/common/BitInputStreamFlexible.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/src/main/java/org/apache/commons/sanselan/common/Compression.java b/src/main/java/org/apache/commons/imaging/common/Compression.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/common/Compression.java
rename to src/main/java/org/apache/commons/imaging/common/Compression.java
index f9b5ac8..84e900d 100644
--- a/src/main/java/org/apache/commons/sanselan/common/Compression.java
+++ b/src/main/java/org/apache/commons/imaging/common/Compression.java
@@ -14,15 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.mylzw.MyLzwCompressor;
-import org.apache.commons.sanselan.common.mylzw.MyLzwDecompressor;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.mylzw.MyLzwCompressor;
+import org.apache.commons.imaging.common.mylzw.MyLzwDecompressor;
 
 public class Compression
 {
diff --git a/src/main/java/org/apache/commons/sanselan/common/IBufferedImageFactory.java b/src/main/java/org/apache/commons/imaging/common/IBufferedImageFactory.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/common/IBufferedImageFactory.java
rename to src/main/java/org/apache/commons/imaging/common/IBufferedImageFactory.java
index 960de77..e8c0500 100644
--- a/src/main/java/org/apache/commons/sanselan/common/IBufferedImageFactory.java
+++ b/src/main/java/org/apache/commons/imaging/common/IBufferedImageFactory.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.awt.image.BufferedImage;
 
diff --git a/src/main/java/org/apache/commons/sanselan/common/IImageMetadata.java b/src/main/java/org/apache/commons/imaging/common/IImageMetadata.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/common/IImageMetadata.java
rename to src/main/java/org/apache/commons/imaging/common/IImageMetadata.java
index 0ede174..707f542 100644
--- a/src/main/java/org/apache/commons/sanselan/common/IImageMetadata.java
+++ b/src/main/java/org/apache/commons/imaging/common/IImageMetadata.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.util.List;
 
diff --git a/src/main/java/org/apache/commons/sanselan/common/ImageBuilder.java b/src/main/java/org/apache/commons/imaging/common/ImageBuilder.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/common/ImageBuilder.java
rename to src/main/java/org/apache/commons/imaging/common/ImageBuilder.java
index 0eb6cec..3d0d187 100644
--- a/src/main/java/org/apache/commons/sanselan/common/ImageBuilder.java
+++ b/src/main/java/org/apache/commons/imaging/common/ImageBuilder.java
@@ -1,4 +1,4 @@
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.awt.image.BufferedImage;
 import java.awt.image.ColorModel;
diff --git a/src/main/java/org/apache/commons/sanselan/common/ImageMetadata.java b/src/main/java/org/apache/commons/imaging/common/ImageMetadata.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/common/ImageMetadata.java
rename to src/main/java/org/apache/commons/imaging/common/ImageMetadata.java
index bdf6419..6f5dbde 100644
--- a/src/main/java/org/apache/commons/sanselan/common/ImageMetadata.java
+++ b/src/main/java/org/apache/commons/imaging/common/ImageMetadata.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/main/java/org/apache/commons/sanselan/common/MyByteArrayOutputStream.java b/src/main/java/org/apache/commons/imaging/common/MyByteArrayOutputStream.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/common/MyByteArrayOutputStream.java
rename to src/main/java/org/apache/commons/imaging/common/MyByteArrayOutputStream.java
index e28f14f..acc244a 100644
--- a/src/main/java/org/apache/commons/sanselan/common/MyByteArrayOutputStream.java
+++ b/src/main/java/org/apache/commons/imaging/common/MyByteArrayOutputStream.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.io.IOException;
 import java.io.OutputStream;
diff --git a/src/main/java/org/apache/commons/sanselan/common/PackBits.java b/src/main/java/org/apache/commons/imaging/common/PackBits.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/common/PackBits.java
rename to src/main/java/org/apache/commons/imaging/common/PackBits.java
index fc4e675..ed44d01 100644
--- a/src/main/java/org/apache/commons/sanselan/common/PackBits.java
+++ b/src/main/java/org/apache/commons/imaging/common/PackBits.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class PackBits
 {
diff --git a/src/main/java/org/apache/commons/sanselan/common/RationalNumber.java b/src/main/java/org/apache/commons/imaging/common/RationalNumber.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/common/RationalNumber.java
rename to src/main/java/org/apache/commons/imaging/common/RationalNumber.java
index 7963c3b..9cd7224 100644
--- a/src/main/java/org/apache/commons/sanselan/common/RationalNumber.java
+++ b/src/main/java/org/apache/commons/imaging/common/RationalNumber.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.text.DecimalFormat;
 import java.text.NumberFormat;
diff --git a/src/main/java/org/apache/commons/sanselan/common/RationalNumberUtilities.java b/src/main/java/org/apache/commons/imaging/common/RationalNumberUtilities.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/common/RationalNumberUtilities.java
rename to src/main/java/org/apache/commons/imaging/common/RationalNumberUtilities.java
index 1d5e8c8..4832aea 100644
--- a/src/main/java/org/apache/commons/sanselan/common/RationalNumberUtilities.java
+++ b/src/main/java/org/apache/commons/imaging/common/RationalNumberUtilities.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 public abstract class RationalNumberUtilities extends Number
 {
diff --git a/src/main/java/org/apache/commons/sanselan/common/RgbBufferedImageFactory.java b/src/main/java/org/apache/commons/imaging/common/RgbBufferedImageFactory.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/common/RgbBufferedImageFactory.java
rename to src/main/java/org/apache/commons/imaging/common/RgbBufferedImageFactory.java
index 9e51812..6c03ecb 100644
--- a/src/main/java/org/apache/commons/sanselan/common/RgbBufferedImageFactory.java
+++ b/src/main/java/org/apache/commons/imaging/common/RgbBufferedImageFactory.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.awt.image.BufferedImage;
 
diff --git a/src/main/java/org/apache/commons/sanselan/common/SimpleBufferedImageFactory.java b/src/main/java/org/apache/commons/imaging/common/SimpleBufferedImageFactory.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/common/SimpleBufferedImageFactory.java
rename to src/main/java/org/apache/commons/imaging/common/SimpleBufferedImageFactory.java
index 77fb1a1..3004fbc 100644
--- a/src/main/java/org/apache/commons/sanselan/common/SimpleBufferedImageFactory.java
+++ b/src/main/java/org/apache/commons/imaging/common/SimpleBufferedImageFactory.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.awt.image.BufferedImage;
 
diff --git a/src/main/java/org/apache/commons/sanselan/common/ZLibUtils.java b/src/main/java/org/apache/commons/imaging/common/ZLibUtils.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/common/ZLibUtils.java
rename to src/main/java/org/apache/commons/imaging/common/ZLibUtils.java
index 040fcd0..ccc4bd9 100644
--- a/src/main/java/org/apache/commons/sanselan/common/ZLibUtils.java
+++ b/src/main/java/org/apache/commons/imaging/common/ZLibUtils.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
diff --git a/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSource.java b/src/main/java/org/apache/commons/imaging/common/bytesource/ByteSource.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSource.java
rename to src/main/java/org/apache/commons/imaging/common/bytesource/ByteSource.java
index 53c85e3..db2b9bc 100644
--- a/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSource.java
+++ b/src/main/java/org/apache/commons/imaging/common/bytesource/ByteSource.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common.bytesource;
+package org.apache.commons.imaging.common.bytesource;
 
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.common.BinaryFileFunctions;
+import org.apache.commons.imaging.common.BinaryFileFunctions;
 
 public abstract class ByteSource extends BinaryFileFunctions
 {
diff --git a/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceArray.java b/src/main/java/org/apache/commons/imaging/common/bytesource/ByteSourceArray.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceArray.java
rename to src/main/java/org/apache/commons/imaging/common/bytesource/ByteSourceArray.java
index 0e67ce9..6945392 100644
--- a/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceArray.java
+++ b/src/main/java/org/apache/commons/imaging/common/bytesource/ByteSourceArray.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common.bytesource;
+package org.apache.commons.imaging.common.bytesource;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceFile.java b/src/main/java/org/apache/commons/imaging/common/bytesource/ByteSourceFile.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceFile.java
rename to src/main/java/org/apache/commons/imaging/common/bytesource/ByteSourceFile.java
index 458fdd9..4ee540f 100644
--- a/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceFile.java
+++ b/src/main/java/org/apache/commons/imaging/common/bytesource/ByteSourceFile.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common.bytesource;
+package org.apache.commons.imaging.common.bytesource;
 
 import java.io.BufferedInputStream;
 import java.io.ByteArrayOutputStream;
@@ -24,7 +24,7 @@
 import java.io.InputStream;
 import java.io.RandomAccessFile;
 
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.util.Debug;
 
 public class ByteSourceFile extends ByteSource
 {
diff --git a/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java b/src/main/java/org/apache/commons/imaging/common/bytesource/ByteSourceInputStream.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java
rename to src/main/java/org/apache/commons/imaging/common/bytesource/ByteSourceInputStream.java
index 4e10242..a715316 100644
--- a/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java
+++ b/src/main/java/org/apache/commons/imaging/common/bytesource/ByteSourceInputStream.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common.bytesource;
+package org.apache.commons.imaging.common.bytesource;
 
 import java.io.BufferedInputStream;
 import java.io.ByteArrayOutputStream;
diff --git a/src/main/java/org/apache/commons/sanselan/common/itu_t4/HuffmanTree.java b/src/main/java/org/apache/commons/imaging/common/itu_t4/HuffmanTree.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/common/itu_t4/HuffmanTree.java
rename to src/main/java/org/apache/commons/imaging/common/itu_t4/HuffmanTree.java
index 8c51fb8..cfd5651 100644
--- a/src/main/java/org/apache/commons/sanselan/common/itu_t4/HuffmanTree.java
+++ b/src/main/java/org/apache/commons/imaging/common/itu_t4/HuffmanTree.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common.itu_t4;
+package org.apache.commons.imaging.common.itu_t4;
 
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.sanselan.common.BitInputStreamFlexible;
+import org.apache.commons.imaging.common.BitInputStreamFlexible;
 
 /**
  * A Huffman tree implemented as 1 array for high locality of reference.
diff --git a/src/main/java/org/apache/commons/sanselan/common/itu_t4/HuffmanTreeException.java b/src/main/java/org/apache/commons/imaging/common/itu_t4/HuffmanTreeException.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/common/itu_t4/HuffmanTreeException.java
rename to src/main/java/org/apache/commons/imaging/common/itu_t4/HuffmanTreeException.java
index 197f210..9f9d00e 100644
--- a/src/main/java/org/apache/commons/sanselan/common/itu_t4/HuffmanTreeException.java
+++ b/src/main/java/org/apache/commons/imaging/common/itu_t4/HuffmanTreeException.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common.itu_t4;
+package org.apache.commons.imaging.common.itu_t4;
 
 class HuffmanTreeException extends Exception {
     private static final long serialVersionUID = 1L;
diff --git a/src/main/java/org/apache/commons/sanselan/common/itu_t4/T4AndT6Compression.java b/src/main/java/org/apache/commons/imaging/common/itu_t4/T4AndT6Compression.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/common/itu_t4/T4AndT6Compression.java
rename to src/main/java/org/apache/commons/imaging/common/itu_t4/T4AndT6Compression.java
index 25f1050..540176b 100644
--- a/src/main/java/org/apache/commons/sanselan/common/itu_t4/T4AndT6Compression.java
+++ b/src/main/java/org/apache/commons/imaging/common/itu_t4/T4AndT6Compression.java
@@ -14,15 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common.itu_t4;
+package org.apache.commons.imaging.common.itu_t4;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BitArrayOutputStream;
-import org.apache.commons.sanselan.common.BitInputStreamFlexible;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BitArrayOutputStream;
+import org.apache.commons.imaging.common.BitInputStreamFlexible;
 
 
 public class T4AndT6Compression {
diff --git a/src/main/java/org/apache/commons/sanselan/common/itu_t4/T4_T6_Tables.java b/src/main/java/org/apache/commons/imaging/common/itu_t4/T4_T6_Tables.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/common/itu_t4/T4_T6_Tables.java
rename to src/main/java/org/apache/commons/imaging/common/itu_t4/T4_T6_Tables.java
index a605536..6f4b57c 100644
--- a/src/main/java/org/apache/commons/sanselan/common/itu_t4/T4_T6_Tables.java
+++ b/src/main/java/org/apache/commons/imaging/common/itu_t4/T4_T6_Tables.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common.itu_t4;
+package org.apache.commons.imaging.common.itu_t4;
 
-import org.apache.commons.sanselan.common.BitArrayOutputStream;
+import org.apache.commons.imaging.common.BitArrayOutputStream;
 
 class T4_T6_Tables {
     public static class Entry {
diff --git a/src/main/java/org/apache/commons/sanselan/common/mylzw/BitsToByteInputStream.java b/src/main/java/org/apache/commons/imaging/common/mylzw/BitsToByteInputStream.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/common/mylzw/BitsToByteInputStream.java
rename to src/main/java/org/apache/commons/imaging/common/mylzw/BitsToByteInputStream.java
index 6ae9697..57b7a5b 100644
--- a/src/main/java/org/apache/commons/sanselan/common/mylzw/BitsToByteInputStream.java
+++ b/src/main/java/org/apache/commons/imaging/common/mylzw/BitsToByteInputStream.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common.mylzw;
+package org.apache.commons.imaging.common.mylzw;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/src/main/java/org/apache/commons/sanselan/common/mylzw/MyBitInputStream.java b/src/main/java/org/apache/commons/imaging/common/mylzw/MyBitInputStream.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/common/mylzw/MyBitInputStream.java
rename to src/main/java/org/apache/commons/imaging/common/mylzw/MyBitInputStream.java
index 1ffd884..a8e528e 100644
--- a/src/main/java/org/apache/commons/sanselan/common/mylzw/MyBitInputStream.java
+++ b/src/main/java/org/apache/commons/imaging/common/mylzw/MyBitInputStream.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common.mylzw;
+package org.apache.commons.imaging.common.mylzw;
 
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.common.BinaryConstants;
+import org.apache.commons.imaging.common.BinaryConstants;
 
 public class MyBitInputStream extends InputStream implements BinaryConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/common/mylzw/MyBitOutputStream.java b/src/main/java/org/apache/commons/imaging/common/mylzw/MyBitOutputStream.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/common/mylzw/MyBitOutputStream.java
rename to src/main/java/org/apache/commons/imaging/common/mylzw/MyBitOutputStream.java
index 44c033c..f08c2db 100644
--- a/src/main/java/org/apache/commons/sanselan/common/mylzw/MyBitOutputStream.java
+++ b/src/main/java/org/apache/commons/imaging/common/mylzw/MyBitOutputStream.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common.mylzw;
+package org.apache.commons.imaging.common.mylzw;
 
 import java.io.IOException;
 import java.io.OutputStream;
 
-import org.apache.commons.sanselan.common.BinaryConstants;
+import org.apache.commons.imaging.common.BinaryConstants;
 
 public class MyBitOutputStream extends OutputStream implements BinaryConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/common/mylzw/MyLzwCompressor.java b/src/main/java/org/apache/commons/imaging/common/mylzw/MyLzwCompressor.java
similarity index 99%
rename from src/main/java/org/apache/commons/sanselan/common/mylzw/MyLzwCompressor.java
rename to src/main/java/org/apache/commons/imaging/common/mylzw/MyLzwCompressor.java
index 30f2452..07e68c3 100644
--- a/src/main/java/org/apache/commons/sanselan/common/mylzw/MyLzwCompressor.java
+++ b/src/main/java/org/apache/commons/imaging/common/mylzw/MyLzwCompressor.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common.mylzw;
+package org.apache.commons.imaging.common.mylzw;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/commons/sanselan/common/mylzw/MyLzwDecompressor.java b/src/main/java/org/apache/commons/imaging/common/mylzw/MyLzwDecompressor.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/common/mylzw/MyLzwDecompressor.java
rename to src/main/java/org/apache/commons/imaging/common/mylzw/MyLzwDecompressor.java
index 0303de7..fa792a0 100644
--- a/src/main/java/org/apache/commons/sanselan/common/mylzw/MyLzwDecompressor.java
+++ b/src/main/java/org/apache/commons/imaging/common/mylzw/MyLzwDecompressor.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.common.mylzw;
+package org.apache.commons.imaging.common.mylzw;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpHeaderInfo.java b/src/main/java/org/apache/commons/imaging/formats/bmp/BmpHeaderInfo.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/formats/bmp/BmpHeaderInfo.java
rename to src/main/java/org/apache/commons/imaging/formats/bmp/BmpHeaderInfo.java
index 6b0c752..d5af8a6 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpHeaderInfo.java
+++ b/src/main/java/org/apache/commons/imaging/formats/bmp/BmpHeaderInfo.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.bmp;
+package org.apache.commons.imaging.formats.bmp;
 
 public class BmpHeaderInfo
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java b/src/main/java/org/apache/commons/imaging/formats/bmp/BmpImageParser.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/bmp/BmpImageParser.java
index e5992f5..f44db93 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/bmp/BmpImageParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.bmp;
+package org.apache.commons.imaging.formats.bmp;
 
 import java.awt.Dimension;
 import java.awt.image.BufferedImage;
@@ -29,28 +29,28 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.FormatCompliance;
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageParser;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.PixelDensity;
-import org.apache.commons.sanselan.common.BinaryOutputStream;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.ImageBuilder;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.formats.bmp.pixelparsers.PixelParser;
-import org.apache.commons.sanselan.formats.bmp.pixelparsers.PixelParserBitFields;
-import org.apache.commons.sanselan.formats.bmp.pixelparsers.PixelParserRgb;
-import org.apache.commons.sanselan.formats.bmp.pixelparsers.PixelParserRle;
-import org.apache.commons.sanselan.formats.bmp.writers.BmpWriter;
-import org.apache.commons.sanselan.formats.bmp.writers.BmpWriterPalette;
-import org.apache.commons.sanselan.formats.bmp.writers.BmpWriterRgb;
-import org.apache.commons.sanselan.palette.PaletteFactory;
-import org.apache.commons.sanselan.palette.SimplePalette;
-import org.apache.commons.sanselan.util.Debug;
-import org.apache.commons.sanselan.util.ParamMap;
+import org.apache.commons.imaging.FormatCompliance;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.PixelDensity;
+import org.apache.commons.imaging.common.BinaryOutputStream;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.ImageBuilder;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.formats.bmp.pixelparsers.PixelParser;
+import org.apache.commons.imaging.formats.bmp.pixelparsers.PixelParserBitFields;
+import org.apache.commons.imaging.formats.bmp.pixelparsers.PixelParserRgb;
+import org.apache.commons.imaging.formats.bmp.pixelparsers.PixelParserRle;
+import org.apache.commons.imaging.formats.bmp.writers.BmpWriter;
+import org.apache.commons.imaging.formats.bmp.writers.BmpWriterPalette;
+import org.apache.commons.imaging.formats.bmp.writers.BmpWriterRgb;
+import org.apache.commons.imaging.palette.PaletteFactory;
+import org.apache.commons.imaging.palette.SimplePalette;
+import org.apache.commons.imaging.util.Debug;
+import org.apache.commons.imaging.util.ParamMap;
 
 public class BmpImageParser extends ImageParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/bmp/ImageContents.java b/src/main/java/org/apache/commons/imaging/formats/bmp/ImageContents.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/bmp/ImageContents.java
rename to src/main/java/org/apache/commons/imaging/formats/bmp/ImageContents.java
index a79819f..2eac5f9 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/bmp/ImageContents.java
+++ b/src/main/java/org/apache/commons/imaging/formats/bmp/ImageContents.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.bmp;
+package org.apache.commons.imaging.formats.bmp;
 
-import org.apache.commons.sanselan.formats.bmp.pixelparsers.PixelParser;
+import org.apache.commons.imaging.formats.bmp.pixelparsers.PixelParser;
 
 class ImageContents
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParser.java b/src/main/java/org/apache/commons/imaging/formats/bmp/pixelparsers/PixelParser.java
similarity index 86%
rename from src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParser.java
rename to src/main/java/org/apache/commons/imaging/formats/bmp/pixelparsers/PixelParser.java
index c937462..5c77e1c 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/bmp/pixelparsers/PixelParser.java
@@ -14,15 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.bmp.pixelparsers;
+package org.apache.commons.imaging.formats.bmp.pixelparsers;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryFileParser;
-import org.apache.commons.sanselan.common.ImageBuilder;
-import org.apache.commons.sanselan.formats.bmp.BmpHeaderInfo;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryFileParser;
+import org.apache.commons.imaging.common.ImageBuilder;
+import org.apache.commons.imaging.formats.bmp.BmpHeaderInfo;
 
 public abstract class PixelParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserBitFields.java b/src/main/java/org/apache/commons/imaging/formats/bmp/pixelparsers/PixelParserBitFields.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserBitFields.java
rename to src/main/java/org/apache/commons/imaging/formats/bmp/pixelparsers/PixelParserBitFields.java
index 788daa9..49a7344 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserBitFields.java
+++ b/src/main/java/org/apache/commons/imaging/formats/bmp/pixelparsers/PixelParserBitFields.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.bmp.pixelparsers;
+package org.apache.commons.imaging.formats.bmp.pixelparsers;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.formats.bmp.BmpHeaderInfo;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.formats.bmp.BmpHeaderInfo;
 
 public class PixelParserBitFields extends PixelParserSimple
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRgb.java b/src/main/java/org/apache/commons/imaging/formats/bmp/pixelparsers/PixelParserRgb.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRgb.java
rename to src/main/java/org/apache/commons/imaging/formats/bmp/pixelparsers/PixelParserRgb.java
index 9b737e4..8f5b97b 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRgb.java
+++ b/src/main/java/org/apache/commons/imaging/formats/bmp/pixelparsers/PixelParserRgb.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.bmp.pixelparsers;
+package org.apache.commons.imaging.formats.bmp.pixelparsers;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.formats.bmp.BmpHeaderInfo;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.formats.bmp.BmpHeaderInfo;
 
 public class PixelParserRgb extends PixelParserSimple
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java b/src/main/java/org/apache/commons/imaging/formats/bmp/pixelparsers/PixelParserRle.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java
rename to src/main/java/org/apache/commons/imaging/formats/bmp/pixelparsers/PixelParserRle.java
index 7d60e0f..28db445 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java
+++ b/src/main/java/org/apache/commons/imaging/formats/bmp/pixelparsers/PixelParserRle.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.bmp.pixelparsers;
+package org.apache.commons.imaging.formats.bmp.pixelparsers;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.ImageBuilder;
-import org.apache.commons.sanselan.formats.bmp.BmpHeaderInfo;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.ImageBuilder;
+import org.apache.commons.imaging.formats.bmp.BmpHeaderInfo;
 
 public class PixelParserRle extends PixelParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserSimple.java b/src/main/java/org/apache/commons/imaging/formats/bmp/pixelparsers/PixelParserSimple.java
similarity index 87%
rename from src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserSimple.java
rename to src/main/java/org/apache/commons/imaging/formats/bmp/pixelparsers/PixelParserSimple.java
index 29c7e53..d1ad41c 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserSimple.java
+++ b/src/main/java/org/apache/commons/imaging/formats/bmp/pixelparsers/PixelParserSimple.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.bmp.pixelparsers;
+package org.apache.commons.imaging.formats.bmp.pixelparsers;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.ImageBuilder;
-import org.apache.commons.sanselan.formats.bmp.BmpHeaderInfo;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.ImageBuilder;
+import org.apache.commons.imaging.formats.bmp.BmpHeaderInfo;
 
 public abstract class PixelParserSimple extends PixelParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/bmp/writers/BmpWriter.java b/src/main/java/org/apache/commons/imaging/formats/bmp/writers/BmpWriter.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/bmp/writers/BmpWriter.java
rename to src/main/java/org/apache/commons/imaging/formats/bmp/writers/BmpWriter.java
index 42d38e9..2b47837 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/bmp/writers/BmpWriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/bmp/writers/BmpWriter.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.bmp.writers;
+package org.apache.commons.imaging.formats.bmp.writers;
 
 import java.awt.image.BufferedImage;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.common.BinaryOutputStream;
+import org.apache.commons.imaging.common.BinaryOutputStream;
 
 public abstract class BmpWriter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/bmp/writers/BmpWriterPalette.java b/src/main/java/org/apache/commons/imaging/formats/bmp/writers/BmpWriterPalette.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/bmp/writers/BmpWriterPalette.java
rename to src/main/java/org/apache/commons/imaging/formats/bmp/writers/BmpWriterPalette.java
index e12e0e2..f8cb037 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/bmp/writers/BmpWriterPalette.java
+++ b/src/main/java/org/apache/commons/imaging/formats/bmp/writers/BmpWriterPalette.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.bmp.writers;
+package org.apache.commons.imaging.formats.bmp.writers;
 
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.common.BinaryOutputStream;
-import org.apache.commons.sanselan.palette.SimplePalette;
+import org.apache.commons.imaging.common.BinaryOutputStream;
+import org.apache.commons.imaging.palette.SimplePalette;
 
 public class BmpWriterPalette extends BmpWriter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/bmp/writers/BmpWriterRgb.java b/src/main/java/org/apache/commons/imaging/formats/bmp/writers/BmpWriterRgb.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/bmp/writers/BmpWriterRgb.java
rename to src/main/java/org/apache/commons/imaging/formats/bmp/writers/BmpWriterRgb.java
index 9fb3231..67f4bc4 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/bmp/writers/BmpWriterRgb.java
+++ b/src/main/java/org/apache/commons/imaging/formats/bmp/writers/BmpWriterRgb.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.bmp.writers;
+package org.apache.commons.imaging.formats.bmp.writers;
 
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.common.BinaryOutputStream;
+import org.apache.commons.imaging.common.BinaryOutputStream;
 
 public class BmpWriterRgb extends BmpWriter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/dcx/DcxImageParser.java b/src/main/java/org/apache/commons/imaging/formats/dcx/DcxImageParser.java
similarity index 92%
rename from src/main/java/org/apache/commons/sanselan/formats/dcx/DcxImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/dcx/DcxImageParser.java
index 5d20bcc..d44c639 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/dcx/DcxImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/dcx/DcxImageParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.dcx;
+package org.apache.commons.imaging.formats.dcx;
 
 import java.awt.Dimension;
 import java.awt.image.BufferedImage;
@@ -28,17 +28,17 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageParser;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryOutputStream;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceInputStream;
-import org.apache.commons.sanselan.formats.pcx.PcxConstants;
-import org.apache.commons.sanselan.formats.pcx.PcxImageParser;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryOutputStream;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceInputStream;
+import org.apache.commons.imaging.formats.pcx.PcxConstants;
+import org.apache.commons.imaging.formats.pcx.PcxImageParser;
 
 public class DcxImageParser extends ImageParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/gif/GenericGifBlock.java b/src/main/java/org/apache/commons/imaging/formats/gif/GenericGifBlock.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/gif/GenericGifBlock.java
rename to src/main/java/org/apache/commons/imaging/formats/gif/GenericGifBlock.java
index c6460a5..52b412e 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/gif/GenericGifBlock.java
+++ b/src/main/java/org/apache/commons/imaging/formats/gif/GenericGifBlock.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.gif;
+package org.apache.commons.imaging.formats.gif;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/gif/GifBlock.java b/src/main/java/org/apache/commons/imaging/formats/gif/GifBlock.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/gif/GifBlock.java
rename to src/main/java/org/apache/commons/imaging/formats/gif/GifBlock.java
index 448b3c8..ba05a25 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/gif/GifBlock.java
+++ b/src/main/java/org/apache/commons/imaging/formats/gif/GifBlock.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.gif;
+package org.apache.commons.imaging.formats.gif;
 
 class GifBlock
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/gif/GifHeaderInfo.java b/src/main/java/org/apache/commons/imaging/formats/gif/GifHeaderInfo.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/gif/GifHeaderInfo.java
rename to src/main/java/org/apache/commons/imaging/formats/gif/GifHeaderInfo.java
index 924a3a8..e4a4ca4 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/gif/GifHeaderInfo.java
+++ b/src/main/java/org/apache/commons/imaging/formats/gif/GifHeaderInfo.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.gif;
+package org.apache.commons.imaging.formats.gif;
 
 class GifHeaderInfo
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java b/src/main/java/org/apache/commons/imaging/formats/gif/GifImageParser.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/gif/GifImageParser.java
index 9abdf5e..1a255bf 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/gif/GifImageParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.gif;
+package org.apache.commons.imaging.formats.gif;
 
 import java.awt.Dimension;
 import java.awt.image.BufferedImage;
@@ -30,22 +30,22 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.FormatCompliance;
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageParser;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryOutputStream;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.ImageBuilder;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.mylzw.MyLzwCompressor;
-import org.apache.commons.sanselan.common.mylzw.MyLzwDecompressor;
-import org.apache.commons.sanselan.palette.Palette;
-import org.apache.commons.sanselan.palette.PaletteFactory;
-import org.apache.commons.sanselan.util.Debug;
-import org.apache.commons.sanselan.util.ParamMap;
+import org.apache.commons.imaging.FormatCompliance;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryOutputStream;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.ImageBuilder;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.mylzw.MyLzwCompressor;
+import org.apache.commons.imaging.common.mylzw.MyLzwDecompressor;
+import org.apache.commons.imaging.palette.Palette;
+import org.apache.commons.imaging.palette.PaletteFactory;
+import org.apache.commons.imaging.util.Debug;
+import org.apache.commons.imaging.util.ParamMap;
 
 public class GifImageParser extends ImageParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/gif/GraphicControlExtension.java b/src/main/java/org/apache/commons/imaging/formats/gif/GraphicControlExtension.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/gif/GraphicControlExtension.java
rename to src/main/java/org/apache/commons/imaging/formats/gif/GraphicControlExtension.java
index 8bd9620..228563f 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/gif/GraphicControlExtension.java
+++ b/src/main/java/org/apache/commons/imaging/formats/gif/GraphicControlExtension.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.gif;
+package org.apache.commons.imaging.formats.gif;
 
 class GraphicControlExtension extends GifBlock
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/gif/ImageContents.java b/src/main/java/org/apache/commons/imaging/formats/gif/ImageContents.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/gif/ImageContents.java
rename to src/main/java/org/apache/commons/imaging/formats/gif/ImageContents.java
index 72be276..87ca35d 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/gif/ImageContents.java
+++ b/src/main/java/org/apache/commons/imaging/formats/gif/ImageContents.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.gif;
+package org.apache.commons.imaging.formats.gif;
 
 import java.util.List;
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/gif/ImageDescriptor.java b/src/main/java/org/apache/commons/imaging/formats/gif/ImageDescriptor.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/gif/ImageDescriptor.java
rename to src/main/java/org/apache/commons/imaging/formats/gif/ImageDescriptor.java
index 7023494..59ed4e6 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/gif/ImageDescriptor.java
+++ b/src/main/java/org/apache/commons/imaging/formats/gif/ImageDescriptor.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.gif;
+package org.apache.commons.imaging.formats.gif;
 
 public class ImageDescriptor extends GifBlock
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsDecoder.java b/src/main/java/org/apache/commons/imaging/formats/icns/IcnsDecoder.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/formats/icns/IcnsDecoder.java
rename to src/main/java/org/apache/commons/imaging/formats/icns/IcnsDecoder.java
index 282941c..5d8be49 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsDecoder.java
+++ b/src/main/java/org/apache/commons/imaging/formats/icns/IcnsDecoder.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.icns;
+package org.apache.commons.imaging.formats.icns;
 
 import java.awt.image.BufferedImage;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.ImageBuilder;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.ImageBuilder;
 
 public class IcnsDecoder
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsImageParser.java b/src/main/java/org/apache/commons/imaging/formats/icns/IcnsImageParser.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/icns/IcnsImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/icns/IcnsImageParser.java
index c2ab581..2deee8c 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/icns/IcnsImageParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.icns;
+package org.apache.commons.imaging.formats.icns;
 
 import java.awt.Dimension;
 import java.awt.image.BufferedImage;
@@ -28,16 +28,16 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageParser;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryOutputStream;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.util.Debug;
-import org.apache.commons.sanselan.util.ParamMap;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryOutputStream;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.util.Debug;
+import org.apache.commons.imaging.util.ParamMap;
 
 public class IcnsImageParser extends ImageParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsType.java b/src/main/java/org/apache/commons/imaging/formats/icns/IcnsType.java
similarity index 99%
rename from src/main/java/org/apache/commons/sanselan/formats/icns/IcnsType.java
rename to src/main/java/org/apache/commons/imaging/formats/icns/IcnsType.java
index 989d558..ea96d4e 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsType.java
+++ b/src/main/java/org/apache/commons/imaging/formats/icns/IcnsType.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.icns;
+package org.apache.commons.imaging.formats.icns;
 
 import java.io.UnsupportedEncodingException;
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/icns/Rle24Compression.java b/src/main/java/org/apache/commons/imaging/formats/icns/Rle24Compression.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/icns/Rle24Compression.java
rename to src/main/java/org/apache/commons/imaging/formats/icns/Rle24Compression.java
index bd1a893..5648a8a 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/icns/Rle24Compression.java
+++ b/src/main/java/org/apache/commons/imaging/formats/icns/Rle24Compression.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.icns;
+package org.apache.commons.imaging.formats.icns;
 
 class Rle24Compression
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/ico/IcoImageParser.java b/src/main/java/org/apache/commons/imaging/formats/ico/IcoImageParser.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/ico/IcoImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/ico/IcoImageParser.java
index f66f9ca..a7e5f11 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/ico/IcoImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/ico/IcoImageParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.ico;
+package org.apache.commons.imaging.formats.ico;
 
 import java.awt.Dimension;
 import java.awt.image.BufferedImage;
@@ -30,19 +30,19 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageParser;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.BinaryOutputStream;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.formats.bmp.BmpImageParser;
-import org.apache.commons.sanselan.palette.PaletteFactory;
-import org.apache.commons.sanselan.palette.SimplePalette;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.BinaryOutputStream;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.formats.bmp.BmpImageParser;
+import org.apache.commons.imaging.palette.PaletteFactory;
+import org.apache.commons.imaging.palette.SimplePalette;
+import org.apache.commons.imaging.util.Debug;
 
 public class IcoImageParser extends ImageParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/Block.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/Block.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/Block.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/Block.java
index ceb2a81..cbc6272 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/Block.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/Block.java
@@ -13,7 +13,7 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg;
+package org.apache.commons.imaging.formats.jpeg;
 
 public final class Block
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegConstants.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegConstants.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/JpegConstants.java
index 5e87547..42e414e 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegConstants.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg;
+package org.apache.commons.imaging.formats.jpeg;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.common.BinaryConstant;
+import org.apache.commons.imaging.common.BinaryConstant;
 
 public interface JpegConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageMetadata.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java
similarity index 91%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageMetadata.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java
index 02df5d5..a6770f8 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageMetadata.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg;
+package org.apache.commons.imaging.formats.jpeg;
 
 import java.awt.Dimension;
 import java.awt.image.BufferedImage;
@@ -25,15 +25,15 @@
 
 import javax.imageio.ImageIO;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.formats.tiff.JpegImageData;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.formats.tiff.TiffImageData;
-import org.apache.commons.sanselan.formats.tiff.TiffImageMetadata;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.formats.tiff.JpegImageData;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.formats.tiff.TiffImageData;
+import org.apache.commons.imaging.formats.tiff.TiffImageMetadata;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.util.Debug;
 
 public class JpegImageMetadata implements IImageMetadata {
     private final JpegPhotoshopMetadata photoshop;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageParser.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java
index 76b7576..55332b0 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg;
+package org.apache.commons.imaging.formats.jpeg;
 
 import java.awt.Dimension;
 import java.awt.image.BufferedImage;
@@ -30,30 +30,30 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageParser;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.formats.jpeg.decoder.JpegDecoder;
-import org.apache.commons.sanselan.formats.jpeg.iptc.IptcParser;
-import org.apache.commons.sanselan.formats.jpeg.iptc.PhotoshopApp13Data;
-import org.apache.commons.sanselan.formats.jpeg.segments.App13Segment;
-import org.apache.commons.sanselan.formats.jpeg.segments.App2Segment;
-import org.apache.commons.sanselan.formats.jpeg.segments.ComSegment;
-import org.apache.commons.sanselan.formats.jpeg.segments.DqtSegment;
-import org.apache.commons.sanselan.formats.jpeg.segments.GenericSegment;
-import org.apache.commons.sanselan.formats.jpeg.segments.JfifSegment;
-import org.apache.commons.sanselan.formats.jpeg.segments.Segment;
-import org.apache.commons.sanselan.formats.jpeg.segments.SofnSegment;
-import org.apache.commons.sanselan.formats.jpeg.segments.UnknownSegment;
-import org.apache.commons.sanselan.formats.jpeg.xmp.JpegXmpParser;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.formats.tiff.TiffImageMetadata;
-import org.apache.commons.sanselan.formats.tiff.TiffImageParser;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffTagConstants;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.formats.jpeg.decoder.JpegDecoder;
+import org.apache.commons.imaging.formats.jpeg.iptc.IptcParser;
+import org.apache.commons.imaging.formats.jpeg.iptc.PhotoshopApp13Data;
+import org.apache.commons.imaging.formats.jpeg.segments.App13Segment;
+import org.apache.commons.imaging.formats.jpeg.segments.App2Segment;
+import org.apache.commons.imaging.formats.jpeg.segments.ComSegment;
+import org.apache.commons.imaging.formats.jpeg.segments.DqtSegment;
+import org.apache.commons.imaging.formats.jpeg.segments.GenericSegment;
+import org.apache.commons.imaging.formats.jpeg.segments.JfifSegment;
+import org.apache.commons.imaging.formats.jpeg.segments.Segment;
+import org.apache.commons.imaging.formats.jpeg.segments.SofnSegment;
+import org.apache.commons.imaging.formats.jpeg.segments.UnknownSegment;
+import org.apache.commons.imaging.formats.jpeg.xmp.JpegXmpParser;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.formats.tiff.TiffImageMetadata;
+import org.apache.commons.imaging.formats.tiff.TiffImageParser;
+import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants;
+import org.apache.commons.imaging.util.Debug;
 
 public class JpegImageParser extends ImageParser implements JpegConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegPhotoshopMetadata.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegPhotoshopMetadata.java
similarity index 79%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegPhotoshopMetadata.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/JpegPhotoshopMetadata.java
index 7089dd3..34a90fc 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegPhotoshopMetadata.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegPhotoshopMetadata.java
@@ -14,17 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg;
+package org.apache.commons.imaging.formats.jpeg;
 
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.common.ImageMetadata;
-import org.apache.commons.sanselan.formats.jpeg.iptc.IptcConstants;
-import org.apache.commons.sanselan.formats.jpeg.iptc.IptcRecord;
-import org.apache.commons.sanselan.formats.jpeg.iptc.IptcTypes;
-import org.apache.commons.sanselan.formats.jpeg.iptc.PhotoshopApp13Data;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.common.ImageMetadata;
+import org.apache.commons.imaging.formats.jpeg.iptc.IptcConstants;
+import org.apache.commons.imaging.formats.jpeg.iptc.IptcRecord;
+import org.apache.commons.imaging.formats.jpeg.iptc.IptcTypes;
+import org.apache.commons.imaging.formats.jpeg.iptc.PhotoshopApp13Data;
+import org.apache.commons.imaging.util.Debug;
 
 public class JpegPhotoshopMetadata extends ImageMetadata implements
         IptcConstants
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegUtils.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegUtils.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegUtils.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/JpegUtils.java
index 9947d0a..5c5d489 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegUtils.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegUtils.java
@@ -14,15 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg;
+package org.apache.commons.imaging.formats.jpeg;
 
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryFileParser;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryFileParser;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.util.Debug;
 
 public class JpegUtils extends BinaryFileParser implements JpegConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/ZigZag.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/ZigZag.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/ZigZag.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/ZigZag.java
index 471e0b8..f70ba7e 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/ZigZag.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/ZigZag.java
@@ -13,7 +13,7 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg;
+package org.apache.commons.imaging.formats.jpeg;
 
 public class ZigZag
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/decoder/Dct.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/Dct.java
similarity index 99%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/decoder/Dct.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/Dct.java
index 9b52de5..35e2031 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/decoder/Dct.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/Dct.java
@@ -13,7 +13,7 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.decoder;
+package org.apache.commons.imaging.formats.jpeg.decoder;
 
 public class Dct
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/decoder/JpegDecoder.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/JpegDecoder.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/decoder/JpegDecoder.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/JpegDecoder.java
index e0eaee4..71d4e10 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/decoder/JpegDecoder.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/JpegDecoder.java
@@ -13,7 +13,7 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.decoder;
+package org.apache.commons.imaging.formats.jpeg.decoder;
 
 import java.awt.image.BufferedImage;
 import java.awt.image.ColorModel;
@@ -25,17 +25,17 @@
 import java.util.Arrays;
 import java.util.Properties;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryFileParser;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.formats.jpeg.Block;
-import org.apache.commons.sanselan.formats.jpeg.JpegConstants;
-import org.apache.commons.sanselan.formats.jpeg.JpegUtils;
-import org.apache.commons.sanselan.formats.jpeg.ZigZag;
-import org.apache.commons.sanselan.formats.jpeg.segments.DhtSegment;
-import org.apache.commons.sanselan.formats.jpeg.segments.DqtSegment;
-import org.apache.commons.sanselan.formats.jpeg.segments.SofnSegment;
-import org.apache.commons.sanselan.formats.jpeg.segments.SosSegment;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryFileParser;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.formats.jpeg.Block;
+import org.apache.commons.imaging.formats.jpeg.JpegConstants;
+import org.apache.commons.imaging.formats.jpeg.JpegUtils;
+import org.apache.commons.imaging.formats.jpeg.ZigZag;
+import org.apache.commons.imaging.formats.jpeg.segments.DhtSegment;
+import org.apache.commons.imaging.formats.jpeg.segments.DqtSegment;
+import org.apache.commons.imaging.formats.jpeg.segments.SofnSegment;
+import org.apache.commons.imaging.formats.jpeg.segments.SosSegment;
 
 public class JpegDecoder extends BinaryFileParser implements JpegUtils.Visitor,
         JpegConstants
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/decoder/JpegInputStream.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/JpegInputStream.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/decoder/JpegInputStream.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/JpegInputStream.java
index ae67639..bf34de7 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/decoder/JpegInputStream.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/JpegInputStream.java
@@ -13,13 +13,13 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.decoder;
+package org.apache.commons.imaging.formats.jpeg.decoder;
 
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.formats.jpeg.JpegConstants;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.formats.jpeg.JpegConstants;
 
 public class JpegInputStream
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/decoder/YCbCrConverter.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/YCbCrConverter.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/decoder/YCbCrConverter.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/YCbCrConverter.java
index ed99c4b..79176c4 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/decoder/YCbCrConverter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/YCbCrConverter.java
@@ -13,7 +13,7 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.decoder;
+package org.apache.commons.imaging.formats.jpeg.decoder;
 
 public class YCbCrConverter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifRewriter.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriter.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifRewriter.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriter.java
index 101d255..27b0921 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifRewriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriter.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.exif;
+package org.apache.commons.imaging.formats.jpeg.exif;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -24,20 +24,20 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryFileParser;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceArray;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceFile;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceInputStream;
-import org.apache.commons.sanselan.formats.jpeg.JpegConstants;
-import org.apache.commons.sanselan.formats.jpeg.JpegUtils;
-import org.apache.commons.sanselan.formats.tiff.write.TiffImageWriterBase;
-import org.apache.commons.sanselan.formats.tiff.write.TiffImageWriterLossless;
-import org.apache.commons.sanselan.formats.tiff.write.TiffImageWriterLossy;
-import org.apache.commons.sanselan.formats.tiff.write.TiffOutputSet;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryFileParser;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceArray;
+import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
+import org.apache.commons.imaging.common.bytesource.ByteSourceInputStream;
+import org.apache.commons.imaging.formats.jpeg.JpegConstants;
+import org.apache.commons.imaging.formats.jpeg.JpegUtils;
+import org.apache.commons.imaging.formats.tiff.write.TiffImageWriterBase;
+import org.apache.commons.imaging.formats.tiff.write.TiffImageWriterLossless;
+import org.apache.commons.imaging.formats.tiff.write.TiffImageWriterLossy;
+import org.apache.commons.imaging.formats.tiff.write.TiffOutputSet;
+import org.apache.commons.imaging.util.Debug;
 
 /**
  * Interface for Exif write/update/remove functionality for Jpeg/JFIF images.
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcBlock.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcBlock.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcBlock.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcBlock.java
index 980c998..85c8d7b 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcBlock.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcBlock.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.iptc;
+package org.apache.commons.imaging.formats.jpeg.iptc;
 
 /*
  * Represents an IPTC block, a set of key-value pairs of Photoshop IPTC data.
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcConstants.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcConstants.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcConstants.java
index 81e6a07..6de9802 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcConstants.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.iptc;
+package org.apache.commons.imaging.formats.jpeg.iptc;
 
-import org.apache.commons.sanselan.formats.jpeg.JpegConstants;
+import org.apache.commons.imaging.formats.jpeg.JpegConstants;
 
 public interface IptcConstants extends JpegConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcParser.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParser.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcParser.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParser.java
index 6f72f09..f59b508 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParser.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.iptc;
+package org.apache.commons.imaging.formats.jpeg.iptc;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -25,14 +25,14 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.SanselanConstants;
-import org.apache.commons.sanselan.common.BinaryFileParser;
-import org.apache.commons.sanselan.common.BinaryInputStream;
-import org.apache.commons.sanselan.common.BinaryOutputStream;
-import org.apache.commons.sanselan.util.Debug;
-import org.apache.commons.sanselan.util.ParamMap;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.SanselanConstants;
+import org.apache.commons.imaging.common.BinaryFileParser;
+import org.apache.commons.imaging.common.BinaryInputStream;
+import org.apache.commons.imaging.common.BinaryOutputStream;
+import org.apache.commons.imaging.util.Debug;
+import org.apache.commons.imaging.util.ParamMap;
 
 public class IptcParser extends BinaryFileParser implements IptcConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcRecord.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcRecord.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcRecord.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcRecord.java
index fa233cf..fb788ea 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcRecord.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcRecord.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.iptc;
+package org.apache.commons.imaging.formats.jpeg.iptc;
 
 import java.io.UnsupportedEncodingException;
 import java.util.Comparator;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcType.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcType.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcType.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcType.java
index f5b0254..f6f9bcf 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcType.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcType.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.iptc;
+package org.apache.commons.imaging.formats.jpeg.iptc;
 
 
 public interface IptcType
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcTypeLookup.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypeLookup.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcTypeLookup.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypeLookup.java
index 38969d3..bd56913 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcTypeLookup.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypeLookup.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.iptc;
+package org.apache.commons.imaging.formats.jpeg.iptc;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcTypes.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypes.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcTypes.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypes.java
index 4e4825d..76663b9 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcTypes.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypes.java
@@ -1,4 +1,4 @@
-package org.apache.commons.sanselan.formats.jpeg.iptc;
+package org.apache.commons.imaging.formats.jpeg.iptc;
 
 public enum IptcTypes implements IptcType {
     RECORD_VERSION(
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/JpegIptcRewriter.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/JpegIptcRewriter.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/JpegIptcRewriter.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/JpegIptcRewriter.java
index 152e7cd..eb3a97b 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/JpegIptcRewriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/JpegIptcRewriter.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.iptc;
+package org.apache.commons.imaging.formats.jpeg.iptc;
 
 import java.io.File;
 import java.io.IOException;
@@ -26,13 +26,13 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceArray;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceFile;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceInputStream;
-import org.apache.commons.sanselan.formats.jpeg.xmp.JpegRewriter;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceArray;
+import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
+import org.apache.commons.imaging.common.bytesource.ByteSourceInputStream;
+import org.apache.commons.imaging.formats.jpeg.xmp.JpegRewriter;
 
 /**
  * Interface for Exif write/update/remove functionality for Jpeg/JFIF images.
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/PhotoshopApp13Data.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/PhotoshopApp13Data.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/PhotoshopApp13Data.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/PhotoshopApp13Data.java
index 09bd15e..143c657 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/PhotoshopApp13Data.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/PhotoshopApp13Data.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.iptc;
+package org.apache.commons.imaging.formats.jpeg.iptc;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/App13Segment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App13Segment.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/App13Segment.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App13Segment.java
index 9067908..a582e5c 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/App13Segment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App13Segment.java
@@ -14,17 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.segments;
+package org.apache.commons.imaging.formats.jpeg.segments;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageParser;
-import org.apache.commons.sanselan.formats.jpeg.iptc.IptcParser;
-import org.apache.commons.sanselan.formats.jpeg.iptc.PhotoshopApp13Data;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.formats.jpeg.JpegImageParser;
+import org.apache.commons.imaging.formats.jpeg.iptc.IptcParser;
+import org.apache.commons.imaging.formats.jpeg.iptc.PhotoshopApp13Data;
 
 public class App13Segment extends AppnSegment
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/App2Segment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App2Segment.java
similarity index 92%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/App2Segment.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App2Segment.java
index a200fd4..7169dd5 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/App2Segment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App2Segment.java
@@ -14,15 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.segments;
+package org.apache.commons.imaging.formats.jpeg.segments;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryFileParser;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryFileParser;
+import org.apache.commons.imaging.formats.jpeg.JpegImageParser;
 
 public class App2Segment extends AppnSegment implements Comparable<App2Segment>
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/AppnSegment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/AppnSegment.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/AppnSegment.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/segments/AppnSegment.java
index 6a180e8..7c18dc8 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/AppnSegment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/AppnSegment.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.segments;
+package org.apache.commons.imaging.formats.jpeg.segments;
 
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.formats.jpeg.JpegImageParser;
+import org.apache.commons.imaging.formats.jpeg.JpegImageParser;
 
 public class AppnSegment extends GenericSegment
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/ComSegment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/ComSegment.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/ComSegment.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/segments/ComSegment.java
index 2ffc62a..538588b 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/ComSegment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/ComSegment.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.segments;
+package org.apache.commons.imaging.formats.jpeg.segments;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/DhtSegment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/DhtSegment.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/DhtSegment.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/segments/DhtSegment.java
index 1891050..ddc1723 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/DhtSegment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/DhtSegment.java
@@ -13,7 +13,7 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.segments;
+package org.apache.commons.imaging.formats.jpeg.segments;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/DqtSegment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/DqtSegment.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/DqtSegment.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/segments/DqtSegment.java
index 2ee5960..e9b6896 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/DqtSegment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/DqtSegment.java
@@ -13,7 +13,7 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.segments;
+package org.apache.commons.imaging.formats.jpeg.segments;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -21,7 +21,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class DqtSegment extends Segment
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/GenericSegment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/GenericSegment.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/GenericSegment.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/segments/GenericSegment.java
index 0d3cc79..08e14f7 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/GenericSegment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/GenericSegment.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.segments;
+package org.apache.commons.imaging.formats.jpeg.segments;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/JfifSegment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/JfifSegment.java
similarity index 93%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/JfifSegment.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/segments/JfifSegment.java
index e7081f8..ce0dbf8 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/JfifSegment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/JfifSegment.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.segments;
+package org.apache.commons.imaging.formats.jpeg.segments;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.formats.jpeg.JpegConstants;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.formats.jpeg.JpegConstants;
 
 public class JfifSegment extends Segment implements JpegConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/Segment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/Segment.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/Segment.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/segments/Segment.java
index 40603ad..ff51d88 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/Segment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/Segment.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.segments;
+package org.apache.commons.imaging.formats.jpeg.segments;
 
 import java.io.PrintWriter;
 
-import org.apache.commons.sanselan.common.BinaryFileParser;
+import org.apache.commons.imaging.common.BinaryFileParser;
 
 public abstract class Segment extends BinaryFileParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/SofnSegment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/SofnSegment.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/SofnSegment.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/segments/SofnSegment.java
index df9590b..e2ddaf0 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/SofnSegment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/SofnSegment.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.segments;
+package org.apache.commons.imaging.formats.jpeg.segments;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.formats.jpeg.JpegImageParser;
 
 public class SofnSegment extends Segment
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/SosSegment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/SosSegment.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/SosSegment.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/segments/SosSegment.java
index 9a8e5cd..77cbf0a 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/SosSegment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/SosSegment.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.segments;
+package org.apache.commons.imaging.formats.jpeg.segments;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/UnknownSegment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/UnknownSegment.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/UnknownSegment.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/segments/UnknownSegment.java
index df44fa3..c321106 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/UnknownSegment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/UnknownSegment.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.segments;
+package org.apache.commons.imaging.formats.jpeg.segments;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegRewriter.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegRewriter.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegRewriter.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegRewriter.java
index 12e4293..6d3fd00 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegRewriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegRewriter.java
@@ -14,20 +14,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.xmp;
+package org.apache.commons.imaging.formats.jpeg.xmp;
 
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryFileParser;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.formats.jpeg.JpegConstants;
-import org.apache.commons.sanselan.formats.jpeg.JpegUtils;
-import org.apache.commons.sanselan.formats.jpeg.iptc.IptcParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryFileParser;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.formats.jpeg.JpegConstants;
+import org.apache.commons.imaging.formats.jpeg.JpegUtils;
+import org.apache.commons.imaging.formats.jpeg.iptc.IptcParser;
 
 /**
  * Interface for Exif write/update/remove functionality for Jpeg/JFIF images.
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpParser.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpParser.java
similarity index 88%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpParser.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpParser.java
index 7d9f858..15ada04 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpParser.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.xmp;
+package org.apache.commons.imaging.formats.jpeg.xmp;
 
 import java.io.UnsupportedEncodingException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryFileParser;
-import org.apache.commons.sanselan.formats.jpeg.JpegConstants;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryFileParser;
+import org.apache.commons.imaging.formats.jpeg.JpegConstants;
 
 public class JpegXmpParser extends BinaryFileParser implements JpegConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriter.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriter.java
similarity index 93%
rename from src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriter.java
rename to src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriter.java
index c3eb187..007ca30 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriter.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.jpeg.xmp;
+package org.apache.commons.imaging.formats.jpeg.xmp;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -24,12 +24,12 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceArray;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceFile;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceInputStream;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceArray;
+import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
+import org.apache.commons.imaging.common.bytesource.ByteSourceInputStream;
 
 /**
  * Interface for Exif write/update/remove functionality for Jpeg/JFIF images.
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pcx/PcxConstants.java b/src/main/java/org/apache/commons/imaging/formats/pcx/PcxConstants.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/formats/pcx/PcxConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/pcx/PcxConstants.java
index 1411605..09a08a8 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pcx/PcxConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pcx/PcxConstants.java
@@ -12,9 +12,9 @@
  *  limitations under the License.
  *  under the License.
  */
-package org.apache.commons.sanselan.formats.pcx;
+package org.apache.commons.imaging.formats.pcx;
 
-import org.apache.commons.sanselan.SanselanConstants;
+import org.apache.commons.imaging.SanselanConstants;
 
 public interface PcxConstants extends SanselanConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pcx/PcxImageParser.java b/src/main/java/org/apache/commons/imaging/formats/pcx/PcxImageParser.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/pcx/PcxImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/pcx/PcxImageParser.java
index 51ff7c2..97afb00 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pcx/PcxImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pcx/PcxImageParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.pcx;
+package org.apache.commons.imaging.formats.pcx;
 
 import java.awt.Dimension;
 import java.awt.Transparency;
@@ -37,13 +37,13 @@
 import java.util.Map;
 import java.util.Properties;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageParser;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
 
 public class PcxImageParser extends ImageParser implements PcxConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pcx/PcxWriter.java b/src/main/java/org/apache/commons/imaging/formats/pcx/PcxWriter.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/pcx/PcxWriter.java
rename to src/main/java/org/apache/commons/imaging/formats/pcx/PcxWriter.java
index a76abe4..cd579c3 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pcx/PcxWriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pcx/PcxWriter.java
@@ -13,7 +13,7 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.pcx;
+package org.apache.commons.imaging.formats.pcx;
 
 import java.awt.image.BufferedImage;
 import java.io.IOException;
@@ -22,11 +22,11 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.PixelDensity;
-import org.apache.commons.sanselan.common.BinaryOutputStream;
-import org.apache.commons.sanselan.palette.PaletteFactory;
-import org.apache.commons.sanselan.palette.SimplePalette;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.PixelDensity;
+import org.apache.commons.imaging.common.BinaryOutputStream;
+import org.apache.commons.imaging.palette.PaletteFactory;
+import org.apache.commons.imaging.palette.SimplePalette;
 
 public class PcxWriter implements PcxConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/BitParser.java b/src/main/java/org/apache/commons/imaging/formats/png/BitParser.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/png/BitParser.java
rename to src/main/java/org/apache/commons/imaging/formats/png/BitParser.java
index 84ca18c..bc326ab 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/BitParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/BitParser.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class BitParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/GammaCorrection.java b/src/main/java/org/apache/commons/imaging/formats/png/GammaCorrection.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/png/GammaCorrection.java
rename to src/main/java/org/apache/commons/imaging/formats/png/GammaCorrection.java
index bdda858..246a3f4 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/GammaCorrection.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/GammaCorrection.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 public class GammaCorrection
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/PngConstants.java b/src/main/java/org/apache/commons/imaging/formats/png/PngConstants.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/png/PngConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/png/PngConstants.java
index d8077c9..ed4f7b0 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/PngConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/PngConstants.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
-import org.apache.commons.sanselan.SanselanConstants;
-import org.apache.commons.sanselan.common.BinaryConstant;
-import org.apache.commons.sanselan.common.BinaryFileFunctions;
+import org.apache.commons.imaging.SanselanConstants;
+import org.apache.commons.imaging.common.BinaryConstant;
+import org.apache.commons.imaging.common.BinaryFileFunctions;
 
 public interface PngConstants extends SanselanConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/PngCrc.java b/src/main/java/org/apache/commons/imaging/formats/png/PngCrc.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/png/PngCrc.java
rename to src/main/java/org/apache/commons/imaging/formats/png/PngCrc.java
index be43f7c..c8ad3a0 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/PngCrc.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/PngCrc.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 // should just use ints, not longs
 public class PngCrc
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/PngImageInfo.java b/src/main/java/org/apache/commons/imaging/formats/png/PngImageInfo.java
similarity index 92%
rename from src/main/java/org/apache/commons/sanselan/formats/png/PngImageInfo.java
rename to src/main/java/org/apache/commons/imaging/formats/png/PngImageInfo.java
index 58c0a6b..c880b06 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/PngImageInfo.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/PngImageInfo.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
 
 public class PngImageInfo extends ImageInfo
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/PngImageParser.java b/src/main/java/org/apache/commons/imaging/formats/png/PngImageParser.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/png/PngImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/png/PngImageParser.java
index dde421c..08067b4 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/PngImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/PngImageParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 import java.awt.Dimension;
 import java.awt.color.ColorSpace;
@@ -34,33 +34,33 @@
 import java.util.Map;
 import java.util.zip.InflaterInputStream;
 
-import org.apache.commons.sanselan.ColorTools;
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageParser;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.ImageMetadata;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.formats.png.chunks.PngChunk;
-import org.apache.commons.sanselan.formats.png.chunks.PngChunkIdat;
-import org.apache.commons.sanselan.formats.png.chunks.PngChunkIhdr;
-import org.apache.commons.sanselan.formats.png.chunks.PngChunkPlte;
-import org.apache.commons.sanselan.formats.png.chunks.PngChunkGama;
-import org.apache.commons.sanselan.formats.png.chunks.PngChunkIccp;
-import org.apache.commons.sanselan.formats.png.chunks.PngChunkItxt;
-import org.apache.commons.sanselan.formats.png.chunks.PngChunkPhys;
-import org.apache.commons.sanselan.formats.png.chunks.PngChunkText;
-import org.apache.commons.sanselan.formats.png.chunks.PngChunkZtxt;
-import org.apache.commons.sanselan.formats.png.chunks.PngTextChunk;
-import org.apache.commons.sanselan.formats.transparencyfilters.TransparencyFilter;
-import org.apache.commons.sanselan.formats.transparencyfilters.TransparencyFilterGrayscale;
-import org.apache.commons.sanselan.formats.transparencyfilters.TransparencyFilterIndexedColor;
-import org.apache.commons.sanselan.formats.transparencyfilters.TransparencyFilterTrueColor;
-import org.apache.commons.sanselan.icc.IccProfileParser;
-import org.apache.commons.sanselan.util.Debug;
-import org.apache.commons.sanselan.util.ParamMap;
+import org.apache.commons.imaging.ColorTools;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.ImageMetadata;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.formats.png.chunks.PngChunk;
+import org.apache.commons.imaging.formats.png.chunks.PngChunkIdat;
+import org.apache.commons.imaging.formats.png.chunks.PngChunkIhdr;
+import org.apache.commons.imaging.formats.png.chunks.PngChunkPlte;
+import org.apache.commons.imaging.formats.png.chunks.PngChunkGama;
+import org.apache.commons.imaging.formats.png.chunks.PngChunkIccp;
+import org.apache.commons.imaging.formats.png.chunks.PngChunkItxt;
+import org.apache.commons.imaging.formats.png.chunks.PngChunkPhys;
+import org.apache.commons.imaging.formats.png.chunks.PngChunkText;
+import org.apache.commons.imaging.formats.png.chunks.PngChunkZtxt;
+import org.apache.commons.imaging.formats.png.chunks.PngTextChunk;
+import org.apache.commons.imaging.formats.transparencyfilters.TransparencyFilter;
+import org.apache.commons.imaging.formats.transparencyfilters.TransparencyFilterGrayscale;
+import org.apache.commons.imaging.formats.transparencyfilters.TransparencyFilterIndexedColor;
+import org.apache.commons.imaging.formats.transparencyfilters.TransparencyFilterTrueColor;
+import org.apache.commons.imaging.icc.IccProfileParser;
+import org.apache.commons.imaging.util.Debug;
+import org.apache.commons.imaging.util.ParamMap;
 
 public class PngImageParser extends ImageParser implements PngConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/PngText.java b/src/main/java/org/apache/commons/imaging/formats/png/PngText.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/png/PngText.java
rename to src/main/java/org/apache/commons/imaging/formats/png/PngText.java
index dbf6f0f..e71766a 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/PngText.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/PngText.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 public abstract class PngText
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/PngWriter.java b/src/main/java/org/apache/commons/imaging/formats/png/PngWriter.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/png/PngWriter.java
rename to src/main/java/org/apache/commons/imaging/formats/png/PngWriter.java
index 40c5306..6c79ac4 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/PngWriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/PngWriter.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayOutputStream;
@@ -25,15 +25,15 @@
 import java.util.Map;
 import java.util.zip.DeflaterOutputStream;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.PixelDensity;
-import org.apache.commons.sanselan.common.ZLibUtils;
-import org.apache.commons.sanselan.palette.MedianCutQuantizer;
-import org.apache.commons.sanselan.palette.Palette;
-import org.apache.commons.sanselan.palette.PaletteFactory;
-import org.apache.commons.sanselan.util.Debug;
-import org.apache.commons.sanselan.util.ParamMap;
-import org.apache.commons.sanselan.util.UnicodeUtils;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.PixelDensity;
+import org.apache.commons.imaging.common.ZLibUtils;
+import org.apache.commons.imaging.palette.MedianCutQuantizer;
+import org.apache.commons.imaging.palette.Palette;
+import org.apache.commons.imaging.palette.PaletteFactory;
+import org.apache.commons.imaging.util.Debug;
+import org.apache.commons.imaging.util.ParamMap;
+import org.apache.commons.imaging.util.UnicodeUtils;
 
 public class PngWriter implements PngConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediter.java b/src/main/java/org/apache/commons/imaging/formats/png/ScanExpediter.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediter.java
rename to src/main/java/org/apache/commons/imaging/formats/png/ScanExpediter.java
index 4287e0a..6a80ef7 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/ScanExpediter.java
@@ -14,22 +14,22 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryFileParser;
-import org.apache.commons.sanselan.formats.png.chunks.PngChunkPlte;
-import org.apache.commons.sanselan.formats.png.scanlinefilters.ScanlineFilter;
-import org.apache.commons.sanselan.formats.png.scanlinefilters.ScanlineFilterAverage;
-import org.apache.commons.sanselan.formats.png.scanlinefilters.ScanlineFilterNone;
-import org.apache.commons.sanselan.formats.png.scanlinefilters.ScanlineFilterPaeth;
-import org.apache.commons.sanselan.formats.png.scanlinefilters.ScanlineFilterSub;
-import org.apache.commons.sanselan.formats.png.scanlinefilters.ScanlineFilterUp;
-import org.apache.commons.sanselan.formats.transparencyfilters.TransparencyFilter;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryFileParser;
+import org.apache.commons.imaging.formats.png.chunks.PngChunkPlte;
+import org.apache.commons.imaging.formats.png.scanlinefilters.ScanlineFilter;
+import org.apache.commons.imaging.formats.png.scanlinefilters.ScanlineFilterAverage;
+import org.apache.commons.imaging.formats.png.scanlinefilters.ScanlineFilterNone;
+import org.apache.commons.imaging.formats.png.scanlinefilters.ScanlineFilterPaeth;
+import org.apache.commons.imaging.formats.png.scanlinefilters.ScanlineFilterSub;
+import org.apache.commons.imaging.formats.png.scanlinefilters.ScanlineFilterUp;
+import org.apache.commons.imaging.formats.transparencyfilters.TransparencyFilter;
 
 public abstract class ScanExpediter extends BinaryFileParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediterInterlaced.java b/src/main/java/org/apache/commons/imaging/formats/png/ScanExpediterInterlaced.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediterInterlaced.java
rename to src/main/java/org/apache/commons/imaging/formats/png/ScanExpediterInterlaced.java
index ffc6cff..d326680 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediterInterlaced.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/ScanExpediterInterlaced.java
@@ -14,15 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.formats.png.chunks.PngChunkPlte;
-import org.apache.commons.sanselan.formats.transparencyfilters.TransparencyFilter;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.formats.png.chunks.PngChunkPlte;
+import org.apache.commons.imaging.formats.transparencyfilters.TransparencyFilter;
 
 public class ScanExpediterInterlaced extends ScanExpediter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediterSimple.java b/src/main/java/org/apache/commons/imaging/formats/png/ScanExpediterSimple.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediterSimple.java
rename to src/main/java/org/apache/commons/imaging/formats/png/ScanExpediterSimple.java
index f88ca8b..23b8927 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediterSimple.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/ScanExpediterSimple.java
@@ -14,15 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.formats.png.chunks.PngChunkPlte;
-import org.apache.commons.sanselan.formats.transparencyfilters.TransparencyFilter;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.formats.png.chunks.PngChunkPlte;
+import org.apache.commons.imaging.formats.transparencyfilters.TransparencyFilter;
 
 public class ScanExpediterSimple extends ScanExpediter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunk.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunk.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunk.java
rename to src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunk.java
index e851523..e6355ab 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunk.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunk.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.chunks;
+package org.apache.commons.imaging.formats.png.chunks;
 
 import java.io.ByteArrayInputStream;
 
-import org.apache.commons.sanselan.common.BinaryFileParser;
+import org.apache.commons.imaging.common.BinaryFileParser;
 
 public class PngChunk extends BinaryFileParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkGama.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkGama.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkGama.java
rename to src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkGama.java
index 64f3763..2d59fb2 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkGama.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkGama.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.chunks;
+package org.apache.commons.imaging.formats.png.chunks;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIccp.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIccp.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIccp.java
rename to src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIccp.java
index 1535a18..7386006 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIccp.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIccp.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.chunks;
+package org.apache.commons.imaging.formats.png.chunks;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.ZLibUtils;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.ZLibUtils;
 
 public class PngChunkIccp extends PngChunk
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIdat.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIdat.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIdat.java
rename to src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIdat.java
index 01371a3..72b1d0c 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIdat.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIdat.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.chunks;
+package org.apache.commons.imaging.formats.png.chunks;
 
 public class PngChunkIdat extends PngChunk
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIhdr.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIhdr.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIhdr.java
rename to src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIhdr.java
index 2c4f509..d0a001a 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIhdr.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIhdr.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.chunks;
+package org.apache.commons.imaging.formats.png.chunks;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkItxt.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.java
similarity index 93%
rename from src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkItxt.java
rename to src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.java
index e2e5849..846e5fc 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkItxt.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.chunks;
+package org.apache.commons.imaging.formats.png.chunks;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.ZLibUtils;
-import org.apache.commons.sanselan.formats.png.PngConstants;
-import org.apache.commons.sanselan.formats.png.PngText;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.ZLibUtils;
+import org.apache.commons.imaging.formats.png.PngConstants;
+import org.apache.commons.imaging.formats.png.PngText;
 
 public class PngChunkItxt extends PngTextChunk
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkPhys.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPhys.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkPhys.java
rename to src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPhys.java
index dfb1dea..e871da3 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkPhys.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPhys.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.chunks;
+package org.apache.commons.imaging.formats.png.chunks;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkPlte.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPlte.java
similarity index 93%
rename from src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkPlte.java
rename to src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPlte.java
index be48e0b..0fa817f 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkPlte.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPlte.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.chunks;
+package org.apache.commons.imaging.formats.png.chunks;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.formats.png.GammaCorrection;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.formats.png.GammaCorrection;
 
 public class PngChunkPlte extends PngChunk
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkText.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkText.java
similarity index 92%
rename from src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkText.java
rename to src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkText.java
index 111c261..a34d9d3 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkText.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkText.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.chunks;
+package org.apache.commons.imaging.formats.png.chunks;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.formats.png.PngText;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.formats.png.PngText;
 
 public class PngChunkText extends PngTextChunk
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkZtxt.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkZtxt.java
rename to src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.java
index 34aa101..1d13aec 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkZtxt.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.chunks;
+package org.apache.commons.imaging.formats.png.chunks;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.ZLibUtils;
-import org.apache.commons.sanselan.formats.png.PngConstants;
-import org.apache.commons.sanselan.formats.png.PngText;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.ZLibUtils;
+import org.apache.commons.imaging.formats.png.PngConstants;
+import org.apache.commons.imaging.formats.png.PngText;
 
 public class PngChunkZtxt extends PngTextChunk
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngTextChunk.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngTextChunk.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngTextChunk.java
rename to src/main/java/org/apache/commons/imaging/formats/png/chunks/PngTextChunk.java
index 1d8b6d4..5108a7c 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngTextChunk.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngTextChunk.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.chunks;
+package org.apache.commons.imaging.formats.png.chunks;
 
-import org.apache.commons.sanselan.formats.png.PngText;
+import org.apache.commons.imaging.formats.png.PngText;
 
 public abstract class PngTextChunk extends PngChunk
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilter.java b/src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilter.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilter.java
rename to src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilter.java
index 2c7ea91..3c00bc3 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilter.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.scanlinefilters;
+package org.apache.commons.imaging.formats.png.scanlinefilters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public abstract class ScanlineFilter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilterAverage.java b/src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterAverage.java
similarity index 93%
rename from src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilterAverage.java
rename to src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterAverage.java
index 5734b64..974c2f2 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilterAverage.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterAverage.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.scanlinefilters;
+package org.apache.commons.imaging.formats.png.scanlinefilters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class ScanlineFilterAverage extends ScanlineFilter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilterNone.java b/src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterNone.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilterNone.java
rename to src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterNone.java
index e468d0e..7d94c7a 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilterNone.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterNone.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.scanlinefilters;
+package org.apache.commons.imaging.formats.png.scanlinefilters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class ScanlineFilterNone extends ScanlineFilter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilterPaeth.java b/src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterPaeth.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilterPaeth.java
rename to src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterPaeth.java
index 558416f..f843690 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilterPaeth.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterPaeth.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.scanlinefilters;
+package org.apache.commons.imaging.formats.png.scanlinefilters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class ScanlineFilterPaeth extends ScanlineFilter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilterSub.java b/src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterSub.java
similarity index 93%
rename from src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilterSub.java
rename to src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterSub.java
index 3200a54..543283c 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilterSub.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterSub.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.scanlinefilters;
+package org.apache.commons.imaging.formats.png.scanlinefilters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class ScanlineFilterSub extends ScanlineFilter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilterUp.java b/src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterUp.java
similarity index 93%
rename from src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilterUp.java
rename to src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterUp.java
index f27a61a..d4fc0a1 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/scanlinefilters/ScanlineFilterUp.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/scanlinefilters/ScanlineFilterUp.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.png.scanlinefilters;
+package org.apache.commons.imaging.formats.png.scanlinefilters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class ScanlineFilterUp extends ScanlineFilter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pnm/FileInfo.java b/src/main/java/org/apache/commons/imaging/formats/pnm/FileInfo.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/pnm/FileInfo.java
rename to src/main/java/org/apache/commons/imaging/formats/pnm/FileInfo.java
index f670708..07e2518 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pnm/FileInfo.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/FileInfo.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.pnm;
+package org.apache.commons.imaging.formats.pnm;
 
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.common.ImageBuilder;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.common.ImageBuilder;
 
 public abstract class FileInfo
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pnm/PbmFileInfo.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PbmFileInfo.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/pnm/PbmFileInfo.java
rename to src/main/java/org/apache/commons/imaging/formats/pnm/PbmFileInfo.java
index 6a2314a..bc5c97b 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pnm/PbmFileInfo.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PbmFileInfo.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.pnm;
+package org.apache.commons.imaging.formats.pnm;
 
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
 
 public class PbmFileInfo extends FileInfo
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pnm/PbmWriter.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PbmWriter.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/pnm/PbmWriter.java
rename to src/main/java/org/apache/commons/imaging/formats/pnm/PbmWriter.java
index e3c316d..9d3b41b 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pnm/PbmWriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PbmWriter.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.pnm;
+package org.apache.commons.imaging.formats.pnm;
 
 import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageWriteException;
+import org.apache.commons.imaging.ImageWriteException;
 
 public class PbmWriter extends PnmWriter implements PnmConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pnm/PgmFileInfo.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PgmFileInfo.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/pnm/PgmFileInfo.java
rename to src/main/java/org/apache/commons/imaging/formats/pnm/PgmFileInfo.java
index fe36eea..95eee4a 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pnm/PgmFileInfo.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PgmFileInfo.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.pnm;
+package org.apache.commons.imaging.formats.pnm;
 
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
 
 public class PgmFileInfo extends FileInfo
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pnm/PgmWriter.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PgmWriter.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/pnm/PgmWriter.java
rename to src/main/java/org/apache/commons/imaging/formats/pnm/PgmWriter.java
index 95516f1..ff07c69 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pnm/PgmWriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PgmWriter.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.pnm;
+package org.apache.commons.imaging.formats.pnm;
 
 import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageWriteException;
+import org.apache.commons.imaging.ImageWriteException;
 
 public class PgmWriter extends PnmWriter implements PnmConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmConstants.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PnmConstants.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/pnm/PnmConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/pnm/PnmConstants.java
index f593467..0ebe8a1 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PnmConstants.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.pnm;
+package org.apache.commons.imaging.formats.pnm;
 
 public interface PnmConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmImageParser.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImageParser.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/pnm/PnmImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/pnm/PnmImageParser.java
index 4e4bccd..2e1ea23 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImageParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.pnm;
+package org.apache.commons.imaging.formats.pnm;
 
 import java.awt.Dimension;
 import java.awt.image.BufferedImage;
@@ -28,15 +28,15 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageParser;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.ImageBuilder;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.ImageBuilder;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.util.Debug;
 
 public class PnmImageParser extends ImageParser implements PnmConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmWriter.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PnmWriter.java
similarity index 91%
rename from src/main/java/org/apache/commons/sanselan/formats/pnm/PnmWriter.java
rename to src/main/java/org/apache/commons/imaging/formats/pnm/PnmWriter.java
index abc9ad6..3073d2f 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmWriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PnmWriter.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.pnm;
+package org.apache.commons.imaging.formats.pnm;
 
 import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageWriteException;
+import org.apache.commons.imaging.ImageWriteException;
 
 public abstract class PnmWriter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pnm/PpmFileInfo.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PpmFileInfo.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/pnm/PpmFileInfo.java
rename to src/main/java/org/apache/commons/imaging/formats/pnm/PpmFileInfo.java
index 4dcaa8d..43f3ea2 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pnm/PpmFileInfo.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PpmFileInfo.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.pnm;
+package org.apache.commons.imaging.formats.pnm;
 
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
 
 public class PpmFileInfo extends FileInfo
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pnm/PpmWriter.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PpmWriter.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/pnm/PpmWriter.java
rename to src/main/java/org/apache/commons/imaging/formats/pnm/PpmWriter.java
index 6e7c826..0f27206 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pnm/PpmWriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PpmWriter.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.pnm;
+package org.apache.commons.imaging.formats.pnm;
 
 import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageWriteException;
+import org.apache.commons.imaging.ImageWriteException;
 
 public class PpmWriter extends PnmWriter implements PnmConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pnm/WhiteSpaceReader.java b/src/main/java/org/apache/commons/imaging/formats/pnm/WhiteSpaceReader.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/pnm/WhiteSpaceReader.java
rename to src/main/java/org/apache/commons/imaging/formats/pnm/WhiteSpaceReader.java
index 7d6aa75..1d67ac3 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pnm/WhiteSpaceReader.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/WhiteSpaceReader.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.pnm;
+package org.apache.commons.imaging.formats.pnm;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/ImageContents.java b/src/main/java/org/apache/commons/imaging/formats/psd/ImageContents.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/ImageContents.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/ImageContents.java
index bde8d17..541fda1 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/ImageContents.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/ImageContents.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd;
+package org.apache.commons.imaging.formats.psd;
 
 import java.io.PrintWriter;
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/ImageResourceBlock.java b/src/main/java/org/apache/commons/imaging/formats/psd/ImageResourceBlock.java
similarity index 92%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/ImageResourceBlock.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/ImageResourceBlock.java
index 3b7b2bd..cf87fab 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/ImageResourceBlock.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/ImageResourceBlock.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd;
+package org.apache.commons.imaging.formats.psd;
 
 import java.io.UnsupportedEncodingException;
 
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.util.Debug;
 
 class ImageResourceBlock
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/ImageResourceType.java b/src/main/java/org/apache/commons/imaging/formats/psd/ImageResourceType.java
similarity index 92%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/ImageResourceType.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/ImageResourceType.java
index 34d3d90..0d39d62 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/ImageResourceType.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/ImageResourceType.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd;
+package org.apache.commons.imaging.formats.psd;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class ImageResourceType
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/PsdConstants.java b/src/main/java/org/apache/commons/imaging/formats/psd/PsdConstants.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/PsdConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/PsdConstants.java
index 0d5e5c9..f877719 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/PsdConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/PsdConstants.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd;
+package org.apache.commons.imaging.formats.psd;
 
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.util.Debug;
 
 public class PsdConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/PsdHeaderInfo.java b/src/main/java/org/apache/commons/imaging/formats/psd/PsdHeaderInfo.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/PsdHeaderInfo.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/PsdHeaderInfo.java
index bf10ad4..d9614d3 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/PsdHeaderInfo.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/PsdHeaderInfo.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd;
+package org.apache.commons.imaging.formats.psd;
 
 import java.io.PrintWriter;
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/PsdImageParser.java b/src/main/java/org/apache/commons/imaging/formats/psd/PsdImageParser.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/PsdImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/PsdImageParser.java
index f454743..7cdc517 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/PsdImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/PsdImageParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd;
+package org.apache.commons.imaging.formats.psd;
 
 import java.awt.Dimension;
 import java.awt.image.BufferedImage;
@@ -28,23 +28,23 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageParser;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.formats.psd.dataparsers.DataParser;
-import org.apache.commons.sanselan.formats.psd.dataparsers.DataParserBitmap;
-import org.apache.commons.sanselan.formats.psd.dataparsers.DataParserCmyk;
-import org.apache.commons.sanselan.formats.psd.dataparsers.DataParserGrayscale;
-import org.apache.commons.sanselan.formats.psd.dataparsers.DataParserIndexed;
-import org.apache.commons.sanselan.formats.psd.dataparsers.DataParserLab;
-import org.apache.commons.sanselan.formats.psd.dataparsers.DataParserRgb;
-import org.apache.commons.sanselan.formats.psd.datareaders.CompressedDataReader;
-import org.apache.commons.sanselan.formats.psd.datareaders.DataReader;
-import org.apache.commons.sanselan.formats.psd.datareaders.UncompressedDataReader;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.formats.psd.dataparsers.DataParser;
+import org.apache.commons.imaging.formats.psd.dataparsers.DataParserBitmap;
+import org.apache.commons.imaging.formats.psd.dataparsers.DataParserCmyk;
+import org.apache.commons.imaging.formats.psd.dataparsers.DataParserGrayscale;
+import org.apache.commons.imaging.formats.psd.dataparsers.DataParserIndexed;
+import org.apache.commons.imaging.formats.psd.dataparsers.DataParserLab;
+import org.apache.commons.imaging.formats.psd.dataparsers.DataParserRgb;
+import org.apache.commons.imaging.formats.psd.datareaders.CompressedDataReader;
+import org.apache.commons.imaging.formats.psd.datareaders.DataReader;
+import org.apache.commons.imaging.formats.psd.datareaders.UncompressedDataReader;
+import org.apache.commons.imaging.util.Debug;
 
 public class PsdImageParser extends ImageParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParser.java b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParser.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParser.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParser.java
index a4f7658..8a3363a 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParser.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd.dataparsers;
+package org.apache.commons.imaging.formats.psd.dataparsers;
 
 import java.awt.image.BufferedImage;
 import java.awt.image.DataBuffer;
 
-import org.apache.commons.sanselan.formats.psd.ImageContents;
-import org.apache.commons.sanselan.formats.psd.PsdHeaderInfo;
+import org.apache.commons.imaging.formats.psd.ImageContents;
+import org.apache.commons.imaging.formats.psd.PsdHeaderInfo;
 
 public abstract class DataParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserBitmap.java b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserBitmap.java
similarity index 91%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserBitmap.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserBitmap.java
index af82652..645bf79 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserBitmap.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserBitmap.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd.dataparsers;
+package org.apache.commons.imaging.formats.psd.dataparsers;
 
-import org.apache.commons.sanselan.formats.psd.ImageContents;
+import org.apache.commons.imaging.formats.psd.ImageContents;
 
 public class DataParserBitmap extends DataParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserCmyk.java b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserCmyk.java
similarity index 88%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserCmyk.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserCmyk.java
index 614dc69..355e657 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserCmyk.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserCmyk.java
@@ -14,10 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd.dataparsers;
+package org.apache.commons.imaging.formats.psd.dataparsers;
 
-import org.apache.commons.sanselan.color.ColorConversions;
-import org.apache.commons.sanselan.formats.psd.ImageContents;
+import org.apache.commons.imaging.color.ColorConversions;
+import org.apache.commons.imaging.formats.psd.ImageContents;
 
 public class DataParserCmyk extends DataParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserGrayscale.java b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserGrayscale.java
similarity index 91%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserGrayscale.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserGrayscale.java
index 23fb36c..0f31719 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserGrayscale.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserGrayscale.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd.dataparsers;
+package org.apache.commons.imaging.formats.psd.dataparsers;
 
-import org.apache.commons.sanselan.formats.psd.ImageContents;
+import org.apache.commons.imaging.formats.psd.ImageContents;
 
 public class DataParserGrayscale extends DataParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserIndexed.java b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserIndexed.java
similarity index 93%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserIndexed.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserIndexed.java
index 22b9036..273396b 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserIndexed.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserIndexed.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd.dataparsers;
+package org.apache.commons.imaging.formats.psd.dataparsers;
 
-import org.apache.commons.sanselan.formats.psd.ImageContents;
+import org.apache.commons.imaging.formats.psd.ImageContents;
 
 public class DataParserIndexed extends DataParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserLab.java b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserLab.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserLab.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserLab.java
index e2eb1d2..12ed688 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserLab.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserLab.java
@@ -14,10 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd.dataparsers;
+package org.apache.commons.imaging.formats.psd.dataparsers;
 
-import org.apache.commons.sanselan.color.ColorConversions;
-import org.apache.commons.sanselan.formats.psd.ImageContents;
+import org.apache.commons.imaging.color.ColorConversions;
+import org.apache.commons.imaging.formats.psd.ImageContents;
 
 public class DataParserLab extends DataParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserRgb.java b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserRgb.java
similarity index 91%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserRgb.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserRgb.java
index 789ff55..a32d786 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserRgb.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserRgb.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd.dataparsers;
+package org.apache.commons.imaging.formats.psd.dataparsers;
 
-import org.apache.commons.sanselan.formats.psd.ImageContents;
+import org.apache.commons.imaging.formats.psd.ImageContents;
 
 public class DataParserRgb extends DataParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserStub.java b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserStub.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserStub.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserStub.java
index 94c4134..0e81020 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/dataparsers/DataParserStub.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/dataparsers/DataParserStub.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd.dataparsers;
+package org.apache.commons.imaging.formats.psd.dataparsers;
 
-import org.apache.commons.sanselan.formats.psd.ImageContents;
+import org.apache.commons.imaging.formats.psd.ImageContents;
 
 public class DataParserStub extends DataParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/datareaders/CompressedDataReader.java b/src/main/java/org/apache/commons/imaging/formats/psd/datareaders/CompressedDataReader.java
similarity index 84%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/datareaders/CompressedDataReader.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/datareaders/CompressedDataReader.java
index 5498f03..1ec8583 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/datareaders/CompressedDataReader.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/datareaders/CompressedDataReader.java
@@ -14,21 +14,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd.datareaders;
+package org.apache.commons.imaging.formats.psd.datareaders;
 
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryFileParser;
-import org.apache.commons.sanselan.common.PackBits;
-import org.apache.commons.sanselan.common.mylzw.BitsToByteInputStream;
-import org.apache.commons.sanselan.common.mylzw.MyBitInputStream;
-import org.apache.commons.sanselan.formats.psd.ImageContents;
-import org.apache.commons.sanselan.formats.psd.PsdHeaderInfo;
-import org.apache.commons.sanselan.formats.psd.dataparsers.DataParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryFileParser;
+import org.apache.commons.imaging.common.PackBits;
+import org.apache.commons.imaging.common.mylzw.BitsToByteInputStream;
+import org.apache.commons.imaging.common.mylzw.MyBitInputStream;
+import org.apache.commons.imaging.formats.psd.ImageContents;
+import org.apache.commons.imaging.formats.psd.PsdHeaderInfo;
+import org.apache.commons.imaging.formats.psd.dataparsers.DataParser;
 
 public class CompressedDataReader extends DataReader
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/datareaders/DataReader.java b/src/main/java/org/apache/commons/imaging/formats/psd/datareaders/DataReader.java
similarity index 78%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/datareaders/DataReader.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/datareaders/DataReader.java
index 1598c62..d90e31e 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/datareaders/DataReader.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/datareaders/DataReader.java
@@ -14,17 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd.datareaders;
+package org.apache.commons.imaging.formats.psd.datareaders;
 
 import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryConstants;
-import org.apache.commons.sanselan.common.BinaryFileParser;
-import org.apache.commons.sanselan.formats.psd.ImageContents;
-import org.apache.commons.sanselan.formats.psd.dataparsers.DataParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryConstants;
+import org.apache.commons.imaging.common.BinaryFileParser;
+import org.apache.commons.imaging.formats.psd.ImageContents;
+import org.apache.commons.imaging.formats.psd.dataparsers.DataParser;
 
 public abstract class DataReader implements BinaryConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/datareaders/UncompressedDataReader.java b/src/main/java/org/apache/commons/imaging/formats/psd/datareaders/UncompressedDataReader.java
similarity index 80%
rename from src/main/java/org/apache/commons/sanselan/formats/psd/datareaders/UncompressedDataReader.java
rename to src/main/java/org/apache/commons/imaging/formats/psd/datareaders/UncompressedDataReader.java
index c521ffa..edee22e 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/datareaders/UncompressedDataReader.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/datareaders/UncompressedDataReader.java
@@ -14,19 +14,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.psd.datareaders;
+package org.apache.commons.imaging.formats.psd.datareaders;
 
 import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryFileParser;
-import org.apache.commons.sanselan.common.mylzw.BitsToByteInputStream;
-import org.apache.commons.sanselan.common.mylzw.MyBitInputStream;
-import org.apache.commons.sanselan.formats.psd.ImageContents;
-import org.apache.commons.sanselan.formats.psd.PsdHeaderInfo;
-import org.apache.commons.sanselan.formats.psd.dataparsers.DataParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryFileParser;
+import org.apache.commons.imaging.common.mylzw.BitsToByteInputStream;
+import org.apache.commons.imaging.common.mylzw.MyBitInputStream;
+import org.apache.commons.imaging.formats.psd.ImageContents;
+import org.apache.commons.imaging.formats.psd.PsdHeaderInfo;
+import org.apache.commons.imaging.formats.psd.dataparsers.DataParser;
 
 public class UncompressedDataReader extends DataReader
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/rgbe/InfoHeaderReader.java b/src/main/java/org/apache/commons/imaging/formats/rgbe/InfoHeaderReader.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/rgbe/InfoHeaderReader.java
rename to src/main/java/org/apache/commons/imaging/formats/rgbe/InfoHeaderReader.java
index 26af558..929f90b 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/rgbe/InfoHeaderReader.java
+++ b/src/main/java/org/apache/commons/imaging/formats/rgbe/InfoHeaderReader.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.rgbe;
+package org.apache.commons.imaging.formats.rgbe;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/rgbe/RgbeConstants.java b/src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeConstants.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/rgbe/RgbeConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeConstants.java
index b262c56..14090e7 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/rgbe/RgbeConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeConstants.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.rgbe;
+package org.apache.commons.imaging.formats.rgbe;
 
 interface RgbeConstants {
     // #?RADIANCE
diff --git a/src/main/java/org/apache/commons/sanselan/formats/rgbe/RgbeImageParser.java b/src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeImageParser.java
similarity index 92%
rename from src/main/java/org/apache/commons/sanselan/formats/rgbe/RgbeImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeImageParser.java
index 6281266..fec52b2 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/rgbe/RgbeImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeImageParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.rgbe;
+package org.apache.commons.imaging.formats.rgbe;
 
 import java.awt.Dimension;
 import java.awt.Point;
@@ -31,13 +31,13 @@
 import java.util.ArrayList;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageParser;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryConstants;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryConstants;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
 
 /**
 * Parser for Radiance HDR images
diff --git a/src/main/java/org/apache/commons/sanselan/formats/rgbe/RgbeInfo.java b/src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeInfo.java
similarity index 91%
rename from src/main/java/org/apache/commons/sanselan/formats/rgbe/RgbeInfo.java
rename to src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeInfo.java
index e98d0b2..b021d2f 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/rgbe/RgbeInfo.java
+++ b/src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeInfo.java
@@ -14,21 +14,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.rgbe;
+package org.apache.commons.imaging.formats.rgbe;
 
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryConstants;
-import org.apache.commons.sanselan.common.BinaryFileFunctions;
-import org.apache.commons.sanselan.common.BinaryInputStream;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.ImageMetadata;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryConstants;
+import org.apache.commons.imaging.common.BinaryFileFunctions;
+import org.apache.commons.imaging.common.BinaryInputStream;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.ImageMetadata;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.util.Debug;
 
 class RgbeInfo extends BinaryFileFunctions {
     private static final Pattern RESOLUTION_STRING = Pattern.compile( "-Y (\\d+) \\+X (\\d+)" );
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tga/TgaConstants.java b/src/main/java/org/apache/commons/imaging/formats/tga/TgaConstants.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/tga/TgaConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tga/TgaConstants.java
index 4712133..b536e18 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tga/TgaConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tga/TgaConstants.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tga;
+package org.apache.commons.imaging.formats.tga;
 
 public interface TgaConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tga/TgaImageParser.java b/src/main/java/org/apache/commons/imaging/formats/tga/TgaImageParser.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/tga/TgaImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/tga/TgaImageParser.java
index a383700..a666c22 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tga/TgaImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tga/TgaImageParser.java
@@ -1,4 +1,4 @@
-package org.apache.commons.sanselan.formats.tga;
+package org.apache.commons.imaging.formats.tga;
 ///*
 // * Licensed to the Apache Software Foundation (ASF) under one or more
 // * contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +15,7 @@
 // * See the License for the specific language governing permissions and
 // * limitations under the License.
 // */
-//package org.apache.commons.sanselan.formats.tga;
+//package org.apache.commons.imaging.formats.tga;
 //
 //import java.awt.Dimension;
 //import java.awt.image.BufferedImage;
@@ -26,13 +26,13 @@
 //import java.util.Map;
 //import java.util.ArrayList;
 //
-//import org.apache.commons.sanselan.ImageFormat;
-//import org.apache.commons.sanselan.ImageInfo;
-//import org.apache.commons.sanselan.ImageParser;
-//import org.apache.commons.sanselan.ImageReadException;
-//import org.apache.commons.sanselan.common.IImageMetadata;
-//import org.apache.commons.sanselan.common.bytesource.ByteSource;
-//import org.apache.commons.sanselan.util.Debug;
+//import org.apache.commons.imaging.ImageFormat;
+//import org.apache.commons.imaging.ImageInfo;
+//import org.apache.commons.imaging.ImageParser;
+//import org.apache.commons.imaging.ImageReadException;
+//import org.apache.commons.imaging.common.IImageMetadata;
+//import org.apache.commons.imaging.common.bytesource.ByteSource;
+//import org.apache.commons.imaging.util.Debug;
 //
 ///*
 // * This class is just a placeholder.  TGA format is not yet supported.
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/JpegImageData.java b/src/main/java/org/apache/commons/imaging/formats/tiff/JpegImageData.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/JpegImageData.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/JpegImageData.java
index cc62599..8d672c9 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/JpegImageData.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/JpegImageData.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 public class JpegImageData extends TiffElement.DataElement
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffContents.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffContents.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/TiffContents.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/TiffContents.java
index 4400885..4f8a75a 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffContents.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffContents.java
@@ -14,15 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.util.Debug;
 
 public class TiffContents
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffDirectory.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/TiffDirectory.java
index 976699d..cfa1af1 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffDirectory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 import java.awt.image.BufferedImage;
 import java.io.IOException;
@@ -22,24 +22,24 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.RationalNumber;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffTagConstants;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoDouble;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoFloat;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoGpsText;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoXpString;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.RationalNumber;
+import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoDouble;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoFloat;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoGpsText;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoXpString;
 
 public class TiffDirectory extends TiffElement implements TiffConstants
 //extends BinaryFileFunctions
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffElement.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffElement.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/TiffElement.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/TiffElement.java
index 9d32d30..c9b8138 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffElement.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffElement.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 import java.util.Comparator;
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffField.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/TiffField.java
index 1358b62..e8aa295 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffField.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -26,15 +26,15 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.formats.tiff.constants.ExifTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.GpsTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffTagConstants;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldType;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.GpsTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldType;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
 
 public class TiffField implements TiffConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffHeader.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffHeader.java
similarity index 91%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/TiffHeader.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/TiffHeader.java
index 1b6eced..19a7f66 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffHeader.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffHeader.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
-import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
 
 public class TiffHeader extends TiffElement
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageData.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java
similarity index 91%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageData.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java
index bf31c56..c3084b8 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageData.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.formats.tiff.datareaders.DataReader;
-import org.apache.commons.sanselan.formats.tiff.datareaders.DataReaderStrips;
-import org.apache.commons.sanselan.formats.tiff.datareaders.DataReaderTiled;
-import org.apache.commons.sanselan.formats.tiff.photometricinterpreters.PhotometricInterpreter;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.formats.tiff.datareaders.DataReader;
+import org.apache.commons.imaging.formats.tiff.datareaders.DataReaderStrips;
+import org.apache.commons.imaging.formats.tiff.datareaders.DataReaderTiled;
+import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreter;
 
 public abstract class TiffImageData
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageMetadata.java
similarity index 91%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageMetadata.java
index 195059e..5eccde9 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageMetadata.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 import java.awt.image.BufferedImage;
 import java.io.IOException;
@@ -23,32 +23,32 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.ImageMetadata;
-import org.apache.commons.sanselan.common.RationalNumber;
-import org.apache.commons.sanselan.formats.tiff.constants.AllTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.GpsTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldType;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoDouble;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoFloat;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoGpsText;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoXpString;
-import org.apache.commons.sanselan.formats.tiff.write.TiffOutputDirectory;
-import org.apache.commons.sanselan.formats.tiff.write.TiffOutputField;
-import org.apache.commons.sanselan.formats.tiff.write.TiffOutputSet;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.ImageMetadata;
+import org.apache.commons.imaging.common.RationalNumber;
+import org.apache.commons.imaging.formats.tiff.constants.AllTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.GpsTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldType;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoDouble;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoFloat;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoGpsText;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoXpString;
+import org.apache.commons.imaging.formats.tiff.write.TiffOutputDirectory;
+import org.apache.commons.imaging.formats.tiff.write.TiffOutputField;
+import org.apache.commons.imaging.formats.tiff.write.TiffOutputSet;
 
 public class TiffImageMetadata extends ImageMetadata
         implements
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageParser.java
similarity index 92%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageParser.java
index 2b0eefa..390621f 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 import java.awt.Dimension;
 import java.awt.image.BufferedImage;
@@ -27,29 +27,29 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.FormatCompliance;
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageParser;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.ImageBuilder;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.formats.tiff.TiffDirectory.ImageDataElement;
-import org.apache.commons.sanselan.formats.tiff.constants.AllTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffTagConstants;
-import org.apache.commons.sanselan.formats.tiff.datareaders.DataReader;
-import org.apache.commons.sanselan.formats.tiff.photometricinterpreters.PhotometricInterpreter;
-import org.apache.commons.sanselan.formats.tiff.photometricinterpreters.PhotometricInterpreterBiLevel;
-import org.apache.commons.sanselan.formats.tiff.photometricinterpreters.PhotometricInterpreterCieLab;
-import org.apache.commons.sanselan.formats.tiff.photometricinterpreters.PhotometricInterpreterCmyk;
-import org.apache.commons.sanselan.formats.tiff.photometricinterpreters.PhotometricInterpreterLogLuv;
-import org.apache.commons.sanselan.formats.tiff.photometricinterpreters.PhotometricInterpreterPalette;
-import org.apache.commons.sanselan.formats.tiff.photometricinterpreters.PhotometricInterpreterRgb;
-import org.apache.commons.sanselan.formats.tiff.photometricinterpreters.PhotometricInterpreterYCbCr;
-import org.apache.commons.sanselan.formats.tiff.write.TiffImageWriterLossy;
+import org.apache.commons.imaging.FormatCompliance;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.ImageBuilder;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.formats.tiff.TiffDirectory.ImageDataElement;
+import org.apache.commons.imaging.formats.tiff.constants.AllTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants;
+import org.apache.commons.imaging.formats.tiff.datareaders.DataReader;
+import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreter;
+import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreterBiLevel;
+import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreterCieLab;
+import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreterCmyk;
+import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreterLogLuv;
+import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreterPalette;
+import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreterRgb;
+import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreterYCbCr;
+import org.apache.commons.imaging.formats.tiff.write.TiffImageWriterLossy;
 
 public class TiffImageParser extends ImageParser implements TiffConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java
index 93d5acc..82b791d 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -22,15 +22,15 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.FormatCompliance;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryFileParser;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.formats.tiff.TiffDirectory.ImageDataElement;
-import org.apache.commons.sanselan.formats.tiff.constants.ExifTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffTagConstants;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.FormatCompliance;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryFileParser;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.formats.tiff.TiffDirectory.ImageDataElement;
+import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants;
+import org.apache.commons.imaging.util.Debug;
 
 public class TiffReader extends BinaryFileParser implements TiffConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffValueOutsideFileBoundsException.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffValueOutsideFileBoundsException.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/TiffValueOutsideFileBoundsException.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/TiffValueOutsideFileBoundsException.java
index 2aa4711..e20dd19 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffValueOutsideFileBoundsException.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffValueOutsideFileBoundsException.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 public class TiffValueOutsideFileBoundsException extends Exception {
     public TiffValueOutsideFileBoundsException(String message) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AdobePageMaker6TagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePageMaker6TagConstants.java
similarity index 84%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AdobePageMaker6TagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePageMaker6TagConstants.java
index c842b0d..9f8d764 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AdobePageMaker6TagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePageMaker6TagConstants.java
@@ -1,14 +1,14 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
 
 /**
  * TIFF specification supplement 1
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AdobePhotoshopTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePhotoshopTagConstants.java
similarity index 81%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AdobePhotoshopTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePhotoshopTagConstants.java
index 6251976..e3b8826 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AdobePhotoshopTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePhotoshopTagConstants.java
@@ -1,11 +1,11 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoUndefined;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoUndefined;
 
 /**
  * TIFF specification supplement 2
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AliasSketchbookProTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AliasSketchbookProTagConstants.java
similarity index 77%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AliasSketchbookProTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/AliasSketchbookProTagConstants.java
index 8a8b758..03ecde4 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AliasSketchbookProTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AliasSketchbookProTagConstants.java
@@ -1,11 +1,11 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
 
 /**
  * Alias Sketchbook Pro multi-layer TIFF
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AllTagConstants.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/AllTagConstants.java
index 7a0b961..43e7ad5 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AllTagConstants.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
 
 public interface AllTagConstants extends
         AdobePhotoshopTagConstants,
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DcfTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DcfTagConstants.java
similarity index 81%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DcfTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/DcfTagConstants.java
index a73bef9..3bcf819 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DcfTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DcfTagConstants.java
@@ -1,13 +1,13 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShortOrLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShortOrLong;
 
 /**
  * Design rule for Camera Filesystem
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DngTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DngTagConstants.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DngTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/DngTagConstants.java
index a9d5130..b782161 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DngTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DngTagConstants.java
@@ -1,23 +1,23 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAsciiOrByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoDouble;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoFloat;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShortOrLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShortOrLongOrRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShortOrRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoUndefined;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAsciiOrByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoDouble;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoFloat;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShortOrLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShortOrLongOrRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShortOrRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoUndefined;
 
 /**
  * Digital Negative (DNG) Specification
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/ExifTagConstants.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/ExifTagConstants.java
index 6518007..ba41813 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/ExifTagConstants.java
@@ -14,25 +14,25 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoDouble;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoGpsText;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShortOrLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoUndefined;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoUnknown;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoDouble;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoGpsText;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShortOrLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoUndefined;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoUnknown;
 
 /**
  * References:
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GdalLibraryTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/GdalLibraryTagConstants.java
similarity index 81%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GdalLibraryTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/GdalLibraryTagConstants.java
index 40f5c16..8a41f46 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GdalLibraryTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/GdalLibraryTagConstants.java
@@ -1,11 +1,11 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
 
 /**
  * GDAL library.
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GeoTiffTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/GeoTiffTagConstants.java
similarity index 85%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GeoTiffTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/GeoTiffTagConstants.java
index 7b86a74..6ae3ec6 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GeoTiffTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/GeoTiffTagConstants.java
@@ -1,13 +1,13 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoDouble;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoDouble;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
 
 /**
  * Geo Tiff.
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GpsTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/GpsTagConstants.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GpsTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/GpsTagConstants.java
index 86fbe96..d15a7c9 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GpsTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/GpsTagConstants.java
@@ -14,18 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoGpsText;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoGpsText;
 
 public interface GpsTagConstants
         extends
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/HylaFaxTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/HylaFaxTagConstants.java
similarity index 80%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/HylaFaxTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/HylaFaxTagConstants.java
index 285f827..31e9921 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/HylaFaxTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/HylaFaxTagConstants.java
@@ -1,12 +1,12 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLong;
 
 public interface HylaFaxTagConstants extends TiffFieldTypeConstants {
     public static final TagInfoLong EXIF_TAG_FAX_RECV_PARAMS = new TagInfoLong(
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MicrosoftHdPhotoTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftHdPhotoTagConstants.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MicrosoftHdPhotoTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftHdPhotoTagConstants.java
index 3da90da..f879097 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MicrosoftHdPhotoTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftHdPhotoTagConstants.java
@@ -1,15 +1,15 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.common.BinaryConstant;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoFloat;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoUndefined;
+import org.apache.commons.imaging.common.BinaryConstant;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoFloat;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoUndefined;
 
 /**
  * Microsoft's HDP/WDP file format. 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MicrosoftTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftTagConstants.java
similarity index 86%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MicrosoftTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftTagConstants.java
index 77621c4..be79cc2 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MicrosoftTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftTagConstants.java
@@ -1,12 +1,12 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoXpString;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoXpString;
 
 /**
  * Largely undocumented and derived by experimentation.
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MolecularDynamicsGelTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MolecularDynamicsGelTagConstants.java
similarity index 83%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MolecularDynamicsGelTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/MolecularDynamicsGelTagConstants.java
index 2c497fc..fbf4155 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MolecularDynamicsGelTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MolecularDynamicsGelTagConstants.java
@@ -1,14 +1,14 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
 
 /**
  * Molecular Dynamics GEL file format
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/OceScanjobTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/OceScanjobTagConstants.java
similarity index 86%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/OceScanjobTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/OceScanjobTagConstants.java
index 50c99e5..d850772 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/OceScanjobTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/OceScanjobTagConstants.java
@@ -1,11 +1,11 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
 
 /**
  * Oce Scanjob.
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/Rfc2301TagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/Rfc2301TagConstants.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/Rfc2301TagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/Rfc2301TagConstants.java
index c16f394..aa5a780 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/Rfc2301TagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/Rfc2301TagConstants.java
@@ -1,15 +1,15 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShortOrLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShortOrLong;
 
 /**
  * RFC 2301: File Format for Internet Fax
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagConstantsUtils.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TagConstantsUtils.java
similarity index 92%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagConstantsUtils.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/TagConstantsUtils.java
index cc3fe98..ccf9f82 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagConstantsUtils.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TagConstantsUtils.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.sanselan.common.BinaryConstant;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.common.BinaryConstant;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
 
 public class TagConstantsUtils implements TiffDirectoryConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/Tiff4TagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/Tiff4TagConstants.java
similarity index 82%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/Tiff4TagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/Tiff4TagConstants.java
index af4cb48..c3da358 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/Tiff4TagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/Tiff4TagConstants.java
@@ -1,11 +1,11 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
 
 /**
  * Tags in TIFF4 but NOT in TIFF6.
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffConstants.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffConstants.java
index ebcd155..3da92be 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffConstants.java
@@ -14,10 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
-import org.apache.commons.sanselan.SanselanConstants;
-import org.apache.commons.sanselan.common.BinaryConstants;
+import org.apache.commons.imaging.SanselanConstants;
+import org.apache.commons.imaging.common.BinaryConstants;
 
 public interface TiffConstants
         extends
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffDirectoryConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffDirectoryConstants.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffDirectoryConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffDirectoryConstants.java
index ba90d4d..7894ad6 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffDirectoryConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffDirectoryConstants.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 public interface TiffDirectoryConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffDirectoryType.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffDirectoryType.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffDirectoryType.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffDirectoryType.java
index a6aec37..b400766 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffDirectoryType.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffDirectoryType.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 public enum TiffDirectoryType {
     TIFF_DIRECTORY_IFD0(
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffEpTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffEpTagConstants.java
similarity index 88%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffEpTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffEpTagConstants.java
index 211b696..b575508 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffEpTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffEpTagConstants.java
@@ -1,18 +1,18 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAsciiOrRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoUndefined;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAsciiOrRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoUndefined;
 
 /**
  * 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffFieldTypeConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffFieldTypeConstants.java
similarity index 83%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffFieldTypeConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffFieldTypeConstants.java
index 504a682..69c7181 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffFieldTypeConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffFieldTypeConstants.java
@@ -14,22 +14,22 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.SanselanConstants;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldType;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldTypeAscii;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldTypeByte;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldTypeDouble;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldTypeFloat;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldTypeLong;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldTypeRational;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldTypeShort;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldTypeUnknown;
+import org.apache.commons.imaging.SanselanConstants;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldType;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldTypeAscii;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldTypeByte;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldTypeDouble;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldTypeFloat;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldTypeLong;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldTypeRational;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldTypeShort;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldTypeUnknown;
 
 public interface TiffFieldTypeConstants extends SanselanConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffTagConstants.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffTagConstants.java
index 925f1ee..ff044dc 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffTagConstants.java
@@ -14,22 +14,22 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAny;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByteOrShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShortOrLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoUnknown;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAny;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByteOrShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShortOrLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoUnknown;
 
 /**
  * Tags from the TIFF6 specification.
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/WangTagConstants.java b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/WangTagConstants.java
similarity index 74%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/constants/WangTagConstants.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/constants/WangTagConstants.java
index e3e6b58..65f0d06 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/WangTagConstants.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/constants/WangTagConstants.java
@@ -1,11 +1,11 @@
-package org.apache.commons.sanselan.formats.tiff.constants;
+package org.apache.commons.imaging.formats.tiff.constants;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByte;
 
 /**
  * Wang/Eastman Software/Kodac/eiStream/Imaging for Windows tags,
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java b/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReader.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReader.java
index 4a1cb5d..79f75a6 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReader.java
@@ -14,24 +14,24 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.datareaders;
+package org.apache.commons.imaging.formats.tiff.datareaders;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryConstants;
-import org.apache.commons.sanselan.common.BitInputStream;
-import org.apache.commons.sanselan.common.ImageBuilder;
-import org.apache.commons.sanselan.common.PackBits;
-import org.apache.commons.sanselan.common.itu_t4.T4AndT6Compression;
-import org.apache.commons.sanselan.common.mylzw.MyLzwDecompressor;
-import org.apache.commons.sanselan.formats.tiff.TiffDirectory;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffTagConstants;
-import org.apache.commons.sanselan.formats.tiff.photometricinterpreters.PhotometricInterpreter;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryConstants;
+import org.apache.commons.imaging.common.BitInputStream;
+import org.apache.commons.imaging.common.ImageBuilder;
+import org.apache.commons.imaging.common.PackBits;
+import org.apache.commons.imaging.common.itu_t4.T4AndT6Compression;
+import org.apache.commons.imaging.common.mylzw.MyLzwDecompressor;
+import org.apache.commons.imaging.formats.tiff.TiffDirectory;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants;
+import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreter;
 
 public abstract class DataReader implements TiffConstants, BinaryConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java b/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderStrips.java
similarity index 88%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderStrips.java
index 3c42537..40ee12c 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderStrips.java
@@ -14,17 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.datareaders;
+package org.apache.commons.imaging.formats.tiff.datareaders;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BitInputStream;
-import org.apache.commons.sanselan.common.ImageBuilder;
-import org.apache.commons.sanselan.formats.tiff.TiffDirectory;
-import org.apache.commons.sanselan.formats.tiff.TiffImageData;
-import org.apache.commons.sanselan.formats.tiff.photometricinterpreters.PhotometricInterpreter;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BitInputStream;
+import org.apache.commons.imaging.common.ImageBuilder;
+import org.apache.commons.imaging.formats.tiff.TiffDirectory;
+import org.apache.commons.imaging.formats.tiff.TiffImageData;
+import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreter;
 
 public final class DataReaderStrips extends DataReader
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderTiled.java b/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderTiled.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderTiled.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderTiled.java
index 7ac34a9..9157574 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderTiled.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderTiled.java
@@ -14,17 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.datareaders;
+package org.apache.commons.imaging.formats.tiff.datareaders;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BitInputStream;
-import org.apache.commons.sanselan.common.ImageBuilder;
-import org.apache.commons.sanselan.formats.tiff.TiffDirectory;
-import org.apache.commons.sanselan.formats.tiff.TiffImageData;
-import org.apache.commons.sanselan.formats.tiff.photometricinterpreters.PhotometricInterpreter;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BitInputStream;
+import org.apache.commons.imaging.common.ImageBuilder;
+import org.apache.commons.imaging.formats.tiff.TiffDirectory;
+import org.apache.commons.imaging.formats.tiff.TiffImageData;
+import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreter;
 
 public final class DataReaderTiled extends DataReader
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldType.java b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldType.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldType.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldType.java
index ae60bf8..fd6d29e 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldType.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldType.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.fieldtypes;
+package org.apache.commons.imaging.formats.tiff.fieldtypes;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryFileFunctions;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryFileFunctions;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
 
 public abstract class FieldType extends BinaryFileFunctions implements
         TiffConstants
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeAscii.java b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeAscii.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeAscii.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeAscii.java
index a51face..9138bad 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeAscii.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeAscii.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.fieldtypes;
+package org.apache.commons.imaging.formats.tiff.fieldtypes;
 
 import java.io.UnsupportedEncodingException;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.formats.tiff.TiffField;
 
 public class FieldTypeAscii extends FieldType
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeByte.java b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeByte.java
similarity index 87%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeByte.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeByte.java
index 98ce3cf..52638fe 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeByte.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeByte.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.fieldtypes;
+package org.apache.commons.imaging.formats.tiff.fieldtypes;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.util.Debug;
 
 public class FieldTypeByte extends FieldType
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeDouble.java b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeDouble.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeDouble.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeDouble.java
index 14f21dc..2f11123 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeDouble.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeDouble.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.fieldtypes;
+package org.apache.commons.imaging.formats.tiff.fieldtypes;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.util.Debug;
 
 public class FieldTypeDouble extends FieldType
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeFloat.java b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeFloat.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeFloat.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeFloat.java
index 4f2efc2..40bef08 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeFloat.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeFloat.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.fieldtypes;
+package org.apache.commons.imaging.formats.tiff.fieldtypes;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.util.Debug;
 
 public class FieldTypeFloat extends FieldType
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeLong.java b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeLong.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeLong.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeLong.java
index a115300..0c6b58a 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeLong.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeLong.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.fieldtypes;
+package org.apache.commons.imaging.formats.tiff.fieldtypes;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.util.Debug;
 
 public class FieldTypeLong extends FieldType
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeRational.java b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeRational.java
similarity index 91%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeRational.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeRational.java
index 3d3c8e6..3fe1d40 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeRational.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeRational.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.fieldtypes;
+package org.apache.commons.imaging.formats.tiff.fieldtypes;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.RationalNumber;
-import org.apache.commons.sanselan.common.RationalNumberUtilities;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.RationalNumber;
+import org.apache.commons.imaging.common.RationalNumberUtilities;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.util.Debug;
 
 public class FieldTypeRational extends FieldType
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeShort.java b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeShort.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeShort.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeShort.java
index ba277de..f822c47 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeShort.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeShort.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.fieldtypes;
+package org.apache.commons.imaging.formats.tiff.fieldtypes;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryConversions;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryConversions;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.util.Debug;
 
 public class FieldTypeShort extends FieldType
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeUnknown.java b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeUnknown.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeUnknown.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeUnknown.java
index ecd7076..c23ad3c 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeUnknown.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeUnknown.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.fieldtypes;
+package org.apache.commons.imaging.formats.tiff.fieldtypes;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.util.Debug;
 
 public class FieldTypeUnknown extends FieldType
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreter.java b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreter.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreter.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreter.java
index 97c98a8..0ec46fd 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreter.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.photometricinterpreters;
+package org.apache.commons.imaging.formats.tiff.photometricinterpreters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.ImageBuilder;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.ImageBuilder;
 
 public abstract class PhotometricInterpreter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterBiLevel.java b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterBiLevel.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterBiLevel.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterBiLevel.java
index d292f1c..d192070 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterBiLevel.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterBiLevel.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.photometricinterpreters;
+package org.apache.commons.imaging.formats.tiff.photometricinterpreters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.ImageBuilder;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.ImageBuilder;
 
 public class PhotometricInterpreterBiLevel extends PhotometricInterpreter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterCieLab.java b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterCieLab.java
similarity index 86%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterCieLab.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterCieLab.java
index 43e376c..e6ee7ff 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterCieLab.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterCieLab.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.photometricinterpreters;
+package org.apache.commons.imaging.formats.tiff.photometricinterpreters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.color.ColorConversions;
-import org.apache.commons.sanselan.common.ImageBuilder;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.color.ColorConversions;
+import org.apache.commons.imaging.common.ImageBuilder;
 
 public class PhotometricInterpreterCieLab extends PhotometricInterpreter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterCmyk.java b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterCmyk.java
similarity index 86%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterCmyk.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterCmyk.java
index a7e4ee5..4704e1e 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterCmyk.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterCmyk.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.photometricinterpreters;
+package org.apache.commons.imaging.formats.tiff.photometricinterpreters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.color.ColorConversions;
-import org.apache.commons.sanselan.common.ImageBuilder;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.color.ColorConversions;
+import org.apache.commons.imaging.common.ImageBuilder;
 
 public class PhotometricInterpreterCmyk extends PhotometricInterpreter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterLogLuv.java b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterLogLuv.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterLogLuv.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterLogLuv.java
index 78528d4..75dc2aa 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterLogLuv.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterLogLuv.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.photometricinterpreters;
+package org.apache.commons.imaging.formats.tiff.photometricinterpreters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.ImageBuilder;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.ImageBuilder;
 
 public class PhotometricInterpreterLogLuv extends PhotometricInterpreter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java
similarity index 91%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java
index 6d05305..6fd962d 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.photometricinterpreters;
+package org.apache.commons.imaging.formats.tiff.photometricinterpreters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.ImageBuilder;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.ImageBuilder;
 
 public class PhotometricInterpreterPalette extends PhotometricInterpreter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterRgb.java b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterRgb.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterRgb.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterRgb.java
index f36c9e3..bda47ff 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterRgb.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterRgb.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.photometricinterpreters;
+package org.apache.commons.imaging.formats.tiff.photometricinterpreters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.ImageBuilder;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.ImageBuilder;
 
 public class PhotometricInterpreterRgb extends PhotometricInterpreter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterYCbCr.java b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterYCbCr.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterYCbCr.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterYCbCr.java
index f8f5be0..0d5e29c 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterYCbCr.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterYCbCr.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.photometricinterpreters;
+package org.apache.commons.imaging.formats.tiff.photometricinterpreters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.ImageBuilder;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.ImageBuilder;
 
 public class PhotometricInterpreterYCbCr extends PhotometricInterpreter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfo.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfo.java
similarity index 86%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfo.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfo.java
index b51caad..024902e 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfo.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfo.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
 
 import java.util.ArrayList;
@@ -23,13 +23,13 @@
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffFieldTypeConstants;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldType;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.formats.tiff.constants.TiffFieldTypeConstants;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldType;
 
 public abstract class TagInfo implements TiffDirectoryConstants, TiffFieldTypeConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAny.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAny.java
similarity index 87%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAny.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAny.java
index 26eb244..3d647c7 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAny.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAny.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoAny extends TagInfo {
     public TagInfoAny(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAscii.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAscii.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAscii.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAscii.java
index ca4bdd6..f0b56ff 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAscii.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAscii.java
@@ -1,9 +1,9 @@
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
 import java.io.UnsupportedEncodingException;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoAscii extends TagInfo {
     public TagInfoAscii(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrByte.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAsciiOrByte.java
similarity index 65%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrByte.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAsciiOrByte.java
index acf9a85..b3c70d6 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrByte.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAsciiOrByte.java
@@ -1,6 +1,6 @@
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoAsciiOrByte extends TagInfo {
     public TagInfoAsciiOrByte(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrRational.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAsciiOrRational.java
similarity index 66%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrRational.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAsciiOrRational.java
index 2ffc365..81a1016 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrRational.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAsciiOrRational.java
@@ -1,6 +1,6 @@
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoAsciiOrRational extends TagInfo {
     public TagInfoAsciiOrRational(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoByte.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoByte.java
similarity index 86%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoByte.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoByte.java
index 98b41cf..1e0a1d8 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoByte.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoByte.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
 import java.util.List;
 
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldType;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldType;
 
 public class TagInfoByte extends TagInfo {
     public TagInfoByte(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoByteOrShort.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoByteOrShort.java
similarity index 86%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoByteOrShort.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoByteOrShort.java
index 59bad8e..b29d44f 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoByteOrShort.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoByteOrShort.java
@@ -14,10 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.common.BinaryConversions;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.common.BinaryConversions;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoByteOrShort extends TagInfo {
     public TagInfoByteOrShort(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoDouble.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoDouble.java
similarity index 83%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoDouble.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoDouble.java
index 624e6ec..e1bc7ad 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoDouble.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoDouble.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryConversions;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryConversions;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoDouble extends TagInfo {
     public TagInfoDouble(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoFloat.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoFloat.java
similarity index 83%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoFloat.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoFloat.java
index 8c73de8..38aac4f 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoFloat.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoFloat.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryConversions;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryConversions;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoFloat extends TagInfo {
     public TagInfoFloat(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoGpsText.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoGpsText.java
similarity index 93%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoGpsText.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoGpsText.java
index f0da951..dfe3ddb 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoGpsText.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoGpsText.java
@@ -14,18 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
 import java.io.UnsupportedEncodingException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryConstants;
-import org.apache.commons.sanselan.common.BinaryFileFunctions;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldType;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryConstants;
+import org.apache.commons.imaging.common.BinaryFileFunctions;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldType;
+import org.apache.commons.imaging.util.Debug;
 
 public final class TagInfoGpsText extends TagInfo
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoLong.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoLong.java
similarity index 85%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoLong.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoLong.java
index 862d55f..4f777d5 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoLong.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoLong.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryConversions;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryConversions;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 
 public class TagInfoLong extends TagInfo {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoRational.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoRational.java
similarity index 81%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoRational.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoRational.java
index 3d75feb..4f7bcc8 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoRational.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoRational.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryConversions;
-import org.apache.commons.sanselan.common.RationalNumber;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryConversions;
+import org.apache.commons.imaging.common.RationalNumber;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoRational extends TagInfo {
     public TagInfoRational(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoSByte.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoSByte.java
similarity index 85%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoSByte.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoSByte.java
index 8f5e0b8..13d0c84 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoSByte.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoSByte.java
@@ -14,10 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoSByte extends TagInfo {
     public TagInfoSByte(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoSLong.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoSLong.java
similarity index 83%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoSLong.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoSLong.java
index 329c50c..6787c8f 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoSLong.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoSLong.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryConversions;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryConversions;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoSLong extends TagInfo {
     public TagInfoSLong(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoSRational.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoSRational.java
similarity index 81%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoSRational.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoSRational.java
index 2d32f14..6731fe9 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoSRational.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoSRational.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryConversions;
-import org.apache.commons.sanselan.common.RationalNumber;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryConversions;
+import org.apache.commons.imaging.common.RationalNumber;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoSRational extends TagInfo {
     public TagInfoSRational(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoSShort.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoSShort.java
similarity index 83%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoSShort.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoSShort.java
index cfb1690..7803990 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoSShort.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoSShort.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryConversions;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryConversions;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoSShort extends TagInfo {
     public TagInfoSShort(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoShort.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoShort.java
similarity index 86%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoShort.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoShort.java
index 1ba27f4..491307e 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoShort.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoShort.java
@@ -14,10 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.common.BinaryConversions;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.common.BinaryConversions;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoShort extends TagInfo {
     public TagInfoShort(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoShortOrLong.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoShortOrLong.java
similarity index 88%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoShortOrLong.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoShortOrLong.java
index 05705ea..4784b23 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoShortOrLong.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoShortOrLong.java
@@ -14,10 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.common.BinaryConversions;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.common.BinaryConversions;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoShortOrLong extends TagInfo {
     public TagInfoShortOrLong(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoShortOrLongOrRational.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoShortOrLongOrRational.java
similarity index 85%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoShortOrLongOrRational.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoShortOrLongOrRational.java
index 3693d0c..f94f3b0 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoShortOrLongOrRational.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoShortOrLongOrRational.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.common.BinaryConversions;
-import org.apache.commons.sanselan.common.RationalNumber;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.common.BinaryConversions;
+import org.apache.commons.imaging.common.RationalNumber;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoShortOrLongOrRational extends TagInfo {
     public TagInfoShortOrLongOrRational(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoShortOrRational.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoShortOrRational.java
similarity index 84%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoShortOrRational.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoShortOrRational.java
index ceb984e..bb83918 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoShortOrRational.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoShortOrRational.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
-import org.apache.commons.sanselan.common.BinaryConversions;
-import org.apache.commons.sanselan.common.RationalNumber;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.common.BinaryConversions;
+import org.apache.commons.imaging.common.RationalNumber;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoShortOrRational extends TagInfo {
     public TagInfoShortOrRational(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoUndefined.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoUndefined.java
similarity index 88%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoUndefined.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoUndefined.java
index 0203f96..6f79592 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoUndefined.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoUndefined.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
 import java.util.Arrays;
 
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public class TagInfoUndefined extends TagInfoByte {
     public TagInfoUndefined(String name, int tag, int length, TiffDirectoryType directoryType) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoUnknown.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoUnknown.java
similarity index 89%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoUnknown.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoUnknown.java
index 5c08724..1b859ee 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoUnknown.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoUnknown.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
 import java.util.Arrays;
 
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
 
 public final class TagInfoUnknown extends TagInfoByte {
     public TagInfoUnknown(String name, int tag, int length, TiffDirectoryType exifDirectory) {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoXpString.java b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoXpString.java
similarity index 83%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoXpString.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoXpString.java
index bc3e684..dc36acc 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoXpString.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoXpString.java
@@ -14,17 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.taginfos;
+package org.apache.commons.imaging.formats.tiff.taginfos;
 
 import java.io.UnsupportedEncodingException;
 import java.util.Arrays;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldType;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldType;
+import org.apache.commons.imaging.util.Debug;
 
 /**
  * Windows XP onwards store some tags using UTF-16LE, but the field type is byte -
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/ImageDataOffsets.java b/src/main/java/org/apache/commons/imaging/formats/tiff/write/ImageDataOffsets.java
similarity index 92%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/write/ImageDataOffsets.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/write/ImageDataOffsets.java
index b834df3..480c458 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/ImageDataOffsets.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/write/ImageDataOffsets.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.write;
+package org.apache.commons.imaging.formats.tiff.write;
 
-import org.apache.commons.sanselan.formats.tiff.TiffElement;
+import org.apache.commons.imaging.formats.tiff.TiffElement;
 
 class ImageDataOffsets
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterBase.java b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterBase.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterBase.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterBase.java
index 5e7a0cd..1719647 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterBase.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterBase.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.write;
+package org.apache.commons.imaging.formats.tiff.write;
 
 import java.awt.image.BufferedImage;
 import java.io.IOException;
@@ -26,19 +26,19 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.PixelDensity;
-import org.apache.commons.sanselan.common.BinaryConstants;
-import org.apache.commons.sanselan.common.BinaryOutputStream;
-import org.apache.commons.sanselan.common.PackBits;
-import org.apache.commons.sanselan.common.RationalNumberUtilities;
-import org.apache.commons.sanselan.common.itu_t4.T4AndT6Compression;
-import org.apache.commons.sanselan.common.mylzw.MyLzwCompressor;
-import org.apache.commons.sanselan.formats.tiff.TiffElement;
-import org.apache.commons.sanselan.formats.tiff.TiffImageData;
-import org.apache.commons.sanselan.formats.tiff.constants.ExifTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffTagConstants;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.PixelDensity;
+import org.apache.commons.imaging.common.BinaryConstants;
+import org.apache.commons.imaging.common.BinaryOutputStream;
+import org.apache.commons.imaging.common.PackBits;
+import org.apache.commons.imaging.common.RationalNumberUtilities;
+import org.apache.commons.imaging.common.itu_t4.T4AndT6Compression;
+import org.apache.commons.imaging.common.mylzw.MyLzwCompressor;
+import org.apache.commons.imaging.formats.tiff.TiffElement;
+import org.apache.commons.imaging.formats.tiff.TiffImageData;
+import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants;
 
 public abstract class TiffImageWriterBase implements TiffConstants,
         BinaryConstants
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossless.java b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterLossless.java
similarity index 93%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossless.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterLossless.java
index 7611d05..9f6f4d8 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossless.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterLossless.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.write;
+package org.apache.commons.imaging.formats.tiff.write;
 
 import java.io.IOException;
 import java.io.OutputStream;
@@ -24,22 +24,22 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.FormatCompliance;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryFileFunctions;
-import org.apache.commons.sanselan.common.BinaryOutputStream;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceArray;
-import org.apache.commons.sanselan.formats.tiff.JpegImageData;
-import org.apache.commons.sanselan.formats.tiff.TiffContents;
-import org.apache.commons.sanselan.formats.tiff.TiffDirectory;
-import org.apache.commons.sanselan.formats.tiff.TiffElement;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.formats.tiff.TiffImageData;
-import org.apache.commons.sanselan.formats.tiff.TiffReader;
-import org.apache.commons.sanselan.formats.tiff.constants.ExifTagConstants;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.FormatCompliance;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryFileFunctions;
+import org.apache.commons.imaging.common.BinaryOutputStream;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceArray;
+import org.apache.commons.imaging.formats.tiff.JpegImageData;
+import org.apache.commons.imaging.formats.tiff.TiffContents;
+import org.apache.commons.imaging.formats.tiff.TiffDirectory;
+import org.apache.commons.imaging.formats.tiff.TiffElement;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.formats.tiff.TiffImageData;
+import org.apache.commons.imaging.formats.tiff.TiffReader;
+import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants;
+import org.apache.commons.imaging.util.Debug;
 
 public class TiffImageWriterLossless extends TiffImageWriterBase
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossy.java b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterLossy.java
similarity index 93%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossy.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterLossy.java
index 6fe40dd..7181d17 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossy.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterLossy.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.write;
+package org.apache.commons.imaging.formats.tiff.write;
 
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryOutputStream;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryOutputStream;
 
 public class TiffImageWriterLossy extends TiffImageWriterBase
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputDirectory.java b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputDirectory.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputDirectory.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputDirectory.java
index 8767843..47ebfae 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputDirectory.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputDirectory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.write;
+package org.apache.commons.imaging.formats.tiff.write;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -22,39 +22,39 @@
 import java.util.Comparator;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryOutputStream;
-import org.apache.commons.sanselan.common.RationalNumber;
-import org.apache.commons.sanselan.formats.tiff.JpegImageData;
-import org.apache.commons.sanselan.formats.tiff.TiffDirectory;
-import org.apache.commons.sanselan.formats.tiff.TiffElement;
-import org.apache.commons.sanselan.formats.tiff.TiffImageData;
-import org.apache.commons.sanselan.formats.tiff.constants.TagConstantsUtils;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffFieldTypeConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffTagConstants;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldType;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAsciiOrByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAsciiOrRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByteOrShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoDouble;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoFloat;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoGpsText;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSByte;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShortOrLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShortOrLongOrRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShortOrRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoXpString;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryOutputStream;
+import org.apache.commons.imaging.common.RationalNumber;
+import org.apache.commons.imaging.formats.tiff.JpegImageData;
+import org.apache.commons.imaging.formats.tiff.TiffDirectory;
+import org.apache.commons.imaging.formats.tiff.TiffElement;
+import org.apache.commons.imaging.formats.tiff.TiffImageData;
+import org.apache.commons.imaging.formats.tiff.constants.TagConstantsUtils;
+import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.formats.tiff.constants.TiffFieldTypeConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldType;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAsciiOrByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoAsciiOrRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByteOrShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoDouble;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoFloat;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoGpsText;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSByte;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoSShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShort;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShortOrLong;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShortOrLongOrRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoShortOrRational;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoXpString;
 
 public final class TiffOutputDirectory extends TiffOutputItem implements
         TiffConstants
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputField.java b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputField.java
similarity index 92%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputField.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputField.java
index 883b4b3..03e3fd1 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputField.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputField.java
@@ -14,15 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.write;
+package org.apache.commons.imaging.formats.tiff.write;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryOutputStream;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants;
-import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldType;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryOutputStream;
+import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
+import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldType;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
 
 public class TiffOutputField implements TiffConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputItem.java b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputItem.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputItem.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputItem.java
index 27066d7..ab5544b 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputItem.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputItem.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.write;
+package org.apache.commons.imaging.formats.tiff.write;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BinaryOutputStream;
-import org.apache.commons.sanselan.formats.tiff.constants.AllTagConstants;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BinaryOutputStream;
+import org.apache.commons.imaging.formats.tiff.constants.AllTagConstants;
 
 abstract class TiffOutputItem implements AllTagConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputSet.java b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputSet.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputSet.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputSet.java
index a0c350b..aacab65 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputSet.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputSet.java
@@ -14,17 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.write;
+package org.apache.commons.imaging.formats.tiff.write;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.RationalNumberUtilities;
-import org.apache.commons.sanselan.formats.tiff.constants.GpsTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.RationalNumberUtilities;
+import org.apache.commons.imaging.formats.tiff.constants.GpsTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.util.Debug;
 
 public final class TiffOutputSet implements TiffConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputSummary.java b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputSummary.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputSummary.java
rename to src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputSummary.java
index 39174c3..65cb33c 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputSummary.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputSummary.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff.write;
+package org.apache.commons.imaging.formats.tiff.write;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
 
 class TiffOutputSummary implements TiffConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/transparencyfilters/TransparencyFilter.java b/src/main/java/org/apache/commons/imaging/formats/transparencyfilters/TransparencyFilter.java
similarity index 86%
rename from src/main/java/org/apache/commons/sanselan/formats/transparencyfilters/TransparencyFilter.java
rename to src/main/java/org/apache/commons/imaging/formats/transparencyfilters/TransparencyFilter.java
index 655f88d..6972651 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/transparencyfilters/TransparencyFilter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/transparencyfilters/TransparencyFilter.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.transparencyfilters;
+package org.apache.commons.imaging.formats.transparencyfilters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryFileParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryFileParser;
 
 public abstract class TransparencyFilter extends BinaryFileParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/transparencyfilters/TransparencyFilterGrayscale.java b/src/main/java/org/apache/commons/imaging/formats/transparencyfilters/TransparencyFilterGrayscale.java
similarity index 92%
rename from src/main/java/org/apache/commons/sanselan/formats/transparencyfilters/TransparencyFilterGrayscale.java
rename to src/main/java/org/apache/commons/imaging/formats/transparencyfilters/TransparencyFilterGrayscale.java
index 43461ae..e7f4071 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/transparencyfilters/TransparencyFilterGrayscale.java
+++ b/src/main/java/org/apache/commons/imaging/formats/transparencyfilters/TransparencyFilterGrayscale.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.transparencyfilters;
+package org.apache.commons.imaging.formats.transparencyfilters;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class TransparencyFilterGrayscale extends TransparencyFilter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/transparencyfilters/TransparencyFilterIndexedColor.java b/src/main/java/org/apache/commons/imaging/formats/transparencyfilters/TransparencyFilterIndexedColor.java
similarity index 92%
rename from src/main/java/org/apache/commons/sanselan/formats/transparencyfilters/TransparencyFilterIndexedColor.java
rename to src/main/java/org/apache/commons/imaging/formats/transparencyfilters/TransparencyFilterIndexedColor.java
index eff9845..53fa12e 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/transparencyfilters/TransparencyFilterIndexedColor.java
+++ b/src/main/java/org/apache/commons/imaging/formats/transparencyfilters/TransparencyFilterIndexedColor.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.transparencyfilters;
+package org.apache.commons.imaging.formats.transparencyfilters;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class TransparencyFilterIndexedColor extends TransparencyFilter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/transparencyfilters/TransparencyFilterTrueColor.java b/src/main/java/org/apache/commons/imaging/formats/transparencyfilters/TransparencyFilterTrueColor.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/formats/transparencyfilters/TransparencyFilterTrueColor.java
rename to src/main/java/org/apache/commons/imaging/formats/transparencyfilters/TransparencyFilterTrueColor.java
index 88cf703..3ea0bb9 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/transparencyfilters/TransparencyFilterTrueColor.java
+++ b/src/main/java/org/apache/commons/imaging/formats/transparencyfilters/TransparencyFilterTrueColor.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.transparencyfilters;
+package org.apache.commons.imaging.formats.transparencyfilters;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class TransparencyFilterTrueColor extends TransparencyFilter
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/wbmp/WbmpImageParser.java b/src/main/java/org/apache/commons/imaging/formats/wbmp/WbmpImageParser.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/formats/wbmp/WbmpImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/wbmp/WbmpImageParser.java
index dbd06fc..d5227b8 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/wbmp/WbmpImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/wbmp/WbmpImageParser.java
@@ -13,7 +13,7 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.wbmp;
+package org.apache.commons.imaging.formats.wbmp;
 
 import java.awt.Dimension;
 import java.awt.image.BufferedImage;
@@ -31,13 +31,13 @@
 import java.util.Map;
 import java.util.Properties;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageParser;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
 
 public class WbmpImageParser extends ImageParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/xbm/XbmImageParser.java b/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImageParser.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/formats/xbm/XbmImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/xbm/XbmImageParser.java
index a15e61e..28fb9c6 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/xbm/XbmImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImageParser.java
@@ -13,7 +13,7 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.xbm;
+package org.apache.commons.imaging.formats.xbm;
 
 import java.awt.Dimension;
 import java.awt.image.BufferedImage;
@@ -36,14 +36,14 @@
 import java.util.Properties;
 import java.util.UUID;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageParser;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BasicCParser;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BasicCParser;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
 
 public class XbmImageParser extends ImageParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/xpm/XpmImageParser.java b/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImageParser.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/formats/xpm/XpmImageParser.java
rename to src/main/java/org/apache/commons/imaging/formats/xpm/XpmImageParser.java
index 68c035d..6eedbf3 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/xpm/XpmImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImageParser.java
@@ -13,7 +13,7 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.xpm;
+package org.apache.commons.imaging.formats.xpm;
 
 import java.awt.Dimension;
 import java.awt.image.BufferedImage;
@@ -39,17 +39,17 @@
 import java.util.Properties;
 import java.util.UUID;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageParser;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.common.BasicCParser;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.palette.PaletteFactory;
-import org.apache.commons.sanselan.palette.SimplePalette;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.common.BasicCParser;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.palette.PaletteFactory;
+import org.apache.commons.imaging.palette.SimplePalette;
+import org.apache.commons.imaging.util.Debug;
 
 public class XpmImageParser extends ImageParser
 {
diff --git a/src/main/java/org/apache/commons/sanselan/icc/IccConstants.java b/src/main/java/org/apache/commons/imaging/icc/IccConstants.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/icc/IccConstants.java
rename to src/main/java/org/apache/commons/imaging/icc/IccConstants.java
index e73acff..5a5f260 100644
--- a/src/main/java/org/apache/commons/sanselan/icc/IccConstants.java
+++ b/src/main/java/org/apache/commons/imaging/icc/IccConstants.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.icc;
+package org.apache.commons.imaging.icc;
 
 
 public interface IccConstants
diff --git a/src/main/java/org/apache/commons/sanselan/icc/IccProfileInfo.java b/src/main/java/org/apache/commons/imaging/icc/IccProfileInfo.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/icc/IccProfileInfo.java
rename to src/main/java/org/apache/commons/imaging/icc/IccProfileInfo.java
index fa0ed0f..5fdf2f1 100644
--- a/src/main/java/org/apache/commons/sanselan/icc/IccProfileInfo.java
+++ b/src/main/java/org/apache/commons/imaging/icc/IccProfileInfo.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.icc;
+package org.apache.commons.imaging.icc;
 
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 public class IccProfileInfo implements IccConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/icc/IccProfileParser.java b/src/main/java/org/apache/commons/imaging/icc/IccProfileParser.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/icc/IccProfileParser.java
rename to src/main/java/org/apache/commons/imaging/icc/IccProfileParser.java
index 2597c82..35f1e23 100644
--- a/src/main/java/org/apache/commons/sanselan/icc/IccProfileParser.java
+++ b/src/main/java/org/apache/commons/imaging/icc/IccProfileParser.java
@@ -14,19 +14,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.icc;
+package org.apache.commons.imaging.icc;
 
 import java.awt.color.ICC_Profile;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.common.BinaryFileParser;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceArray;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceFile;
-import org.apache.commons.sanselan.util.CachingInputStream;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.common.BinaryFileParser;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceArray;
+import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
+import org.apache.commons.imaging.util.CachingInputStream;
+import org.apache.commons.imaging.util.Debug;
 
 public class IccProfileParser extends BinaryFileParser implements IccConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/icc/IccTag.java b/src/main/java/org/apache/commons/imaging/icc/IccTag.java
similarity index 94%
rename from src/main/java/org/apache/commons/sanselan/icc/IccTag.java
rename to src/main/java/org/apache/commons/imaging/icc/IccTag.java
index 1860f43..e7c4880 100644
--- a/src/main/java/org/apache/commons/sanselan/icc/IccTag.java
+++ b/src/main/java/org/apache/commons/imaging/icc/IccTag.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.icc;
+package org.apache.commons.imaging.icc;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -22,9 +22,9 @@
 import java.io.PrintWriter;
 import java.util.Arrays;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryConstants;
-import org.apache.commons.sanselan.common.BinaryInputStream;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryConstants;
+import org.apache.commons.imaging.common.BinaryInputStream;
 
 public class IccTag implements BinaryConstants, IccConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/icc/IccTagDataType.java b/src/main/java/org/apache/commons/imaging/icc/IccTagDataType.java
similarity index 91%
rename from src/main/java/org/apache/commons/sanselan/icc/IccTagDataType.java
rename to src/main/java/org/apache/commons/imaging/icc/IccTagDataType.java
index 5ebc52e..d61beca 100644
--- a/src/main/java/org/apache/commons/sanselan/icc/IccTagDataType.java
+++ b/src/main/java/org/apache/commons/imaging/icc/IccTagDataType.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.icc;
+package org.apache.commons.imaging.icc;
 
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.imaging.ImageReadException;
 
 interface IccTagDataType
 {
diff --git a/src/main/java/org/apache/commons/sanselan/icc/IccTagDataTypes.java b/src/main/java/org/apache/commons/imaging/icc/IccTagDataTypes.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/icc/IccTagDataTypes.java
rename to src/main/java/org/apache/commons/imaging/icc/IccTagDataTypes.java
index 67990f4..4f090e9 100644
--- a/src/main/java/org/apache/commons/sanselan/icc/IccTagDataTypes.java
+++ b/src/main/java/org/apache/commons/imaging/icc/IccTagDataTypes.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.icc;
+package org.apache.commons.imaging.icc;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.common.BinaryConstants;
-import org.apache.commons.sanselan.common.BinaryInputStream;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.common.BinaryConstants;
+import org.apache.commons.imaging.common.BinaryInputStream;
 
 public enum IccTagDataTypes implements IccTagDataType {
     DESC_TYPE(
diff --git a/src/main/java/org/apache/commons/sanselan/icc/IccTagType.java b/src/main/java/org/apache/commons/imaging/icc/IccTagType.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/icc/IccTagType.java
rename to src/main/java/org/apache/commons/imaging/icc/IccTagType.java
index 42c4db4..aa8d4cc 100644
--- a/src/main/java/org/apache/commons/sanselan/icc/IccTagType.java
+++ b/src/main/java/org/apache/commons/imaging/icc/IccTagType.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.icc;
+package org.apache.commons.imaging.icc;
 
 interface IccTagType
 {
diff --git a/src/main/java/org/apache/commons/sanselan/icc/IccTagTypes.java b/src/main/java/org/apache/commons/imaging/icc/IccTagTypes.java
similarity index 99%
rename from src/main/java/org/apache/commons/sanselan/icc/IccTagTypes.java
rename to src/main/java/org/apache/commons/imaging/icc/IccTagTypes.java
index 1042eba..7cf0d61 100644
--- a/src/main/java/org/apache/commons/sanselan/icc/IccTagTypes.java
+++ b/src/main/java/org/apache/commons/imaging/icc/IccTagTypes.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.icc;
+package org.apache.commons.imaging.icc;
 
 public enum IccTagTypes implements IccTagType {
     A_TO_B0_TAG("AToB0Tag",
diff --git a/src/main/java/org/apache/commons/sanselan/palette/ColorSpaceSubset.java b/src/main/java/org/apache/commons/imaging/palette/ColorSpaceSubset.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/palette/ColorSpaceSubset.java
rename to src/main/java/org/apache/commons/imaging/palette/ColorSpaceSubset.java
index 6173cd2..c944455 100644
--- a/src/main/java/org/apache/commons/sanselan/palette/ColorSpaceSubset.java
+++ b/src/main/java/org/apache/commons/imaging/palette/ColorSpaceSubset.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.palette;
+package org.apache.commons.imaging.palette;
 
 class ColorSpaceSubset implements Comparable<ColorSpaceSubset>
 {
diff --git a/src/main/java/org/apache/commons/sanselan/palette/MedianCutQuantizer.java b/src/main/java/org/apache/commons/imaging/palette/MedianCutQuantizer.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/palette/MedianCutQuantizer.java
rename to src/main/java/org/apache/commons/imaging/palette/MedianCutQuantizer.java
index e7c9fe6..2c3b69e 100644
--- a/src/main/java/org/apache/commons/sanselan/palette/MedianCutQuantizer.java
+++ b/src/main/java/org/apache/commons/imaging/palette/MedianCutQuantizer.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.palette;
+package org.apache.commons.imaging.palette;
 
 import java.awt.image.BufferedImage;
 import java.util.ArrayList;
@@ -24,8 +24,8 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.util.Debug;
 
 public class MedianCutQuantizer
 {
diff --git a/src/main/java/org/apache/commons/sanselan/palette/Palette.java b/src/main/java/org/apache/commons/imaging/palette/Palette.java
similarity index 90%
rename from src/main/java/org/apache/commons/sanselan/palette/Palette.java
rename to src/main/java/org/apache/commons/imaging/palette/Palette.java
index 235bbdd..86dd221 100644
--- a/src/main/java/org/apache/commons/sanselan/palette/Palette.java
+++ b/src/main/java/org/apache/commons/imaging/palette/Palette.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.palette;
+package org.apache.commons.imaging.palette;
 
-import org.apache.commons.sanselan.ImageWriteException;
+import org.apache.commons.imaging.ImageWriteException;
 
 public abstract class Palette
 {
diff --git a/src/main/java/org/apache/commons/sanselan/palette/PaletteFactory.java b/src/main/java/org/apache/commons/imaging/palette/PaletteFactory.java
similarity index 99%
rename from src/main/java/org/apache/commons/sanselan/palette/PaletteFactory.java
rename to src/main/java/org/apache/commons/imaging/palette/PaletteFactory.java
index da851d8..a398c57 100644
--- a/src/main/java/org/apache/commons/sanselan/palette/PaletteFactory.java
+++ b/src/main/java/org/apache/commons/imaging/palette/PaletteFactory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.palette;
+package org.apache.commons.imaging.palette;
 
 import java.awt.color.ColorSpace;
 import java.awt.image.BufferedImage;
diff --git a/src/main/java/org/apache/commons/sanselan/palette/QuantizedPalette.java b/src/main/java/org/apache/commons/imaging/palette/QuantizedPalette.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/palette/QuantizedPalette.java
rename to src/main/java/org/apache/commons/imaging/palette/QuantizedPalette.java
index 4be80f9..867394f 100644
--- a/src/main/java/org/apache/commons/sanselan/palette/QuantizedPalette.java
+++ b/src/main/java/org/apache/commons/imaging/palette/QuantizedPalette.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.palette;
+package org.apache.commons.imaging.palette;
 
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageWriteException;
+import org.apache.commons.imaging.ImageWriteException;
 
 public class QuantizedPalette extends Palette
 {
diff --git a/src/main/java/org/apache/commons/sanselan/palette/SimplePalette.java b/src/main/java/org/apache/commons/imaging/palette/SimplePalette.java
similarity index 95%
rename from src/main/java/org/apache/commons/sanselan/palette/SimplePalette.java
rename to src/main/java/org/apache/commons/imaging/palette/SimplePalette.java
index 8192539..963a122 100644
--- a/src/main/java/org/apache/commons/sanselan/palette/SimplePalette.java
+++ b/src/main/java/org/apache/commons/imaging/palette/SimplePalette.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.palette;
+package org.apache.commons.imaging.palette;
 
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.util.Debug;
 
 public class SimplePalette extends Palette
 {
diff --git a/src/main/java/org/apache/commons/sanselan/util/CachingInputStream.java b/src/main/java/org/apache/commons/imaging/util/CachingInputStream.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/util/CachingInputStream.java
rename to src/main/java/org/apache/commons/imaging/util/CachingInputStream.java
index 996ac46..dd0f8dd 100644
--- a/src/main/java/org/apache/commons/sanselan/util/CachingInputStream.java
+++ b/src/main/java/org/apache/commons/imaging/util/CachingInputStream.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.util;
+package org.apache.commons.imaging.util;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/commons/sanselan/util/CachingOutputStream.java b/src/main/java/org/apache/commons/imaging/util/CachingOutputStream.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/util/CachingOutputStream.java
rename to src/main/java/org/apache/commons/imaging/util/CachingOutputStream.java
index ce52feb..9002fd0 100644
--- a/src/main/java/org/apache/commons/sanselan/util/CachingOutputStream.java
+++ b/src/main/java/org/apache/commons/imaging/util/CachingOutputStream.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.util;
+package org.apache.commons.imaging.util;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/commons/sanselan/util/Debug.java b/src/main/java/org/apache/commons/imaging/util/Debug.java
similarity index 99%
rename from src/main/java/org/apache/commons/sanselan/util/Debug.java
rename to src/main/java/org/apache/commons/imaging/util/Debug.java
index 13cbfc5..9192dcd 100644
--- a/src/main/java/org/apache/commons/sanselan/util/Debug.java
+++ b/src/main/java/org/apache/commons/imaging/util/Debug.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.util;
+package org.apache.commons.imaging.util;
 
 import java.awt.Dimension;
 import java.awt.Point;
diff --git a/src/main/java/org/apache/commons/sanselan/util/DebugInputStream.java b/src/main/java/org/apache/commons/imaging/util/DebugInputStream.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/util/DebugInputStream.java
rename to src/main/java/org/apache/commons/imaging/util/DebugInputStream.java
index 1001f45..266393d 100644
--- a/src/main/java/org/apache/commons/sanselan/util/DebugInputStream.java
+++ b/src/main/java/org/apache/commons/imaging/util/DebugInputStream.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.util;
+package org.apache.commons.imaging.util;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/src/main/java/org/apache/commons/sanselan/util/DebugOutputStream.java b/src/main/java/org/apache/commons/imaging/util/DebugOutputStream.java
similarity index 97%
rename from src/main/java/org/apache/commons/sanselan/util/DebugOutputStream.java
rename to src/main/java/org/apache/commons/imaging/util/DebugOutputStream.java
index 3ff4331..2ea0ae1 100644
--- a/src/main/java/org/apache/commons/sanselan/util/DebugOutputStream.java
+++ b/src/main/java/org/apache/commons/imaging/util/DebugOutputStream.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.util;
+package org.apache.commons.imaging.util;
 
 import java.io.IOException;
 import java.io.OutputStream;
diff --git a/src/main/java/org/apache/commons/sanselan/util/IoUtils.java b/src/main/java/org/apache/commons/imaging/util/IoUtils.java
similarity index 98%
rename from src/main/java/org/apache/commons/sanselan/util/IoUtils.java
rename to src/main/java/org/apache/commons/imaging/util/IoUtils.java
index 9978ac8..b17af9b 100644
--- a/src/main/java/org/apache/commons/sanselan/util/IoUtils.java
+++ b/src/main/java/org/apache/commons/imaging/util/IoUtils.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.util;
+package org.apache.commons.imaging.util;
 
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
@@ -28,7 +28,7 @@
 import java.io.OutputStream;
 import java.nio.channels.FileChannel;
 
-import org.apache.commons.sanselan.SanselanConstants;
+import org.apache.commons.imaging.SanselanConstants;
 
 public class IoUtils implements SanselanConstants
 {
diff --git a/src/main/java/org/apache/commons/sanselan/util/ParamMap.java b/src/main/java/org/apache/commons/imaging/util/ParamMap.java
similarity index 96%
rename from src/main/java/org/apache/commons/sanselan/util/ParamMap.java
rename to src/main/java/org/apache/commons/imaging/util/ParamMap.java
index 48632a5..a8f8546 100644
--- a/src/main/java/org/apache/commons/sanselan/util/ParamMap.java
+++ b/src/main/java/org/apache/commons/imaging/util/ParamMap.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.util;
+package org.apache.commons.imaging.util;
 
 import java.util.Map;
 
diff --git a/src/main/java/org/apache/commons/sanselan/util/UnicodeUtils.java b/src/main/java/org/apache/commons/imaging/util/UnicodeUtils.java
similarity index 99%
rename from src/main/java/org/apache/commons/sanselan/util/UnicodeUtils.java
rename to src/main/java/org/apache/commons/imaging/util/UnicodeUtils.java
index 92f21c2..a787be9 100644
--- a/src/main/java/org/apache/commons/sanselan/util/UnicodeUtils.java
+++ b/src/main/java/org/apache/commons/imaging/util/UnicodeUtils.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.util;
+package org.apache.commons.imaging.util;
 
 import java.io.UnsupportedEncodingException;
 
-import org.apache.commons.sanselan.common.BinaryConstants;
+import org.apache.commons.imaging.common.BinaryConstants;
 
 public abstract class UnicodeUtils implements BinaryConstants
 {
diff --git a/src/test/java/org/apache/commons/sanselan/SanselanGuessFormatTest.java b/src/test/java/org/apache/commons/imaging/SanselanGuessFormatTest.java
similarity index 96%
rename from src/test/java/org/apache/commons/sanselan/SanselanGuessFormatTest.java
rename to src/test/java/org/apache/commons/imaging/SanselanGuessFormatTest.java
index 3f833db..0682d78 100644
--- a/src/test/java/org/apache/commons/sanselan/SanselanGuessFormatTest.java
+++ b/src/test/java/org/apache/commons/imaging/SanselanGuessFormatTest.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan;
+package org.apache.commons.imaging;
 
 import java.io.File;
 import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.Sanselan;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.Sanselan;
 
 public class SanselanGuessFormatTest extends SanselanTest {
 
diff --git a/src/test/java/org/apache/commons/sanselan/SanselanTest.java b/src/test/java/org/apache/commons/imaging/SanselanTest.java
similarity index 94%
rename from src/test/java/org/apache/commons/sanselan/SanselanTest.java
rename to src/test/java/org/apache/commons/imaging/SanselanTest.java
index bd2255d..3f2aaa2 100644
--- a/src/test/java/org/apache/commons/sanselan/SanselanTest.java
+++ b/src/test/java/org/apache/commons/imaging/SanselanTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan;
+package org.apache.commons.imaging;
 
 import java.io.File;
 import java.io.IOException;
@@ -24,11 +24,11 @@
 
 import junit.framework.TestCase;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanConstants;
-import org.apache.commons.sanselan.test.util.FileSystemTraversal;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanConstants;
+import org.apache.commons.imaging.test.util.FileSystemTraversal;
+import org.apache.commons.imaging.util.Debug;
 
 public abstract class SanselanTest extends TestCase implements
         SanselanTestConstants, SanselanConstants {
diff --git a/src/test/java/org/apache/commons/sanselan/SanselanTestConstants.java b/src/test/java/org/apache/commons/imaging/SanselanTestConstants.java
similarity index 97%
rename from src/test/java/org/apache/commons/sanselan/SanselanTestConstants.java
rename to src/test/java/org/apache/commons/imaging/SanselanTestConstants.java
index 89c3c4a..b393278 100644
--- a/src/test/java/org/apache/commons/sanselan/SanselanTestConstants.java
+++ b/src/test/java/org/apache/commons/imaging/SanselanTestConstants.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan;
+package org.apache.commons.imaging;
 
 import java.io.File;
 import org.apache.commons.io.FilenameUtils;
diff --git a/src/test/java/org/apache/commons/sanselan/color/ColorConversionsTest.java b/src/test/java/org/apache/commons/imaging/color/ColorConversionsTest.java
similarity index 98%
rename from src/test/java/org/apache/commons/sanselan/color/ColorConversionsTest.java
rename to src/test/java/org/apache/commons/imaging/color/ColorConversionsTest.java
index 900ab48..7c1993d 100644
--- a/src/test/java/org/apache/commons/sanselan/color/ColorConversionsTest.java
+++ b/src/test/java/org/apache/commons/imaging/color/ColorConversionsTest.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.color;
+package org.apache.commons.imaging.color;
 
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.util.Debug;
 
 import junit.framework.TestCase;
 
diff --git a/src/test/java/org/apache/commons/sanselan/common/BinaryFileFunctionsTest.java b/src/test/java/org/apache/commons/imaging/common/BinaryFileFunctionsTest.java
similarity index 92%
rename from src/test/java/org/apache/commons/sanselan/common/BinaryFileFunctionsTest.java
rename to src/test/java/org/apache/commons/imaging/common/BinaryFileFunctionsTest.java
index 131ccff..243da21 100644
--- a/src/test/java/org/apache/commons/sanselan/common/BinaryFileFunctionsTest.java
+++ b/src/test/java/org/apache/commons/imaging/common/BinaryFileFunctionsTest.java
@@ -13,10 +13,10 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
-import org.apache.commons.sanselan.SanselanTest;
-import org.apache.commons.sanselan.common.BinaryFileFunctions;
+import org.apache.commons.imaging.SanselanTest;
+import org.apache.commons.imaging.common.BinaryFileFunctions;
 
 public class BinaryFileFunctionsTest extends SanselanTest {
     // Work around that pesky "protected"...
diff --git a/src/test/java/org/apache/commons/sanselan/common/RationalNumberTest.java b/src/test/java/org/apache/commons/imaging/common/RationalNumberTest.java
similarity index 93%
rename from src/test/java/org/apache/commons/sanselan/common/RationalNumberTest.java
rename to src/test/java/org/apache/commons/imaging/common/RationalNumberTest.java
index 5a31c63..9576a52 100644
--- a/src/test/java/org/apache/commons/sanselan/common/RationalNumberTest.java
+++ b/src/test/java/org/apache/commons/imaging/common/RationalNumberTest.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.common;
+package org.apache.commons.imaging.common;
 
 import java.text.DecimalFormat;
 import java.text.NumberFormat;
 
-import org.apache.commons.sanselan.SanselanTest;
-import org.apache.commons.sanselan.common.RationalNumber;
-import org.apache.commons.sanselan.common.RationalNumberUtilities;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.SanselanTest;
+import org.apache.commons.imaging.common.RationalNumber;
+import org.apache.commons.imaging.common.RationalNumberUtilities;
+import org.apache.commons.imaging.util.Debug;
 
 public class RationalNumberTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/common/bytesource/ByteSourceDataTest.java b/src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceDataTest.java
similarity index 93%
rename from src/test/java/org/apache/commons/sanselan/common/bytesource/ByteSourceDataTest.java
rename to src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceDataTest.java
index 7802d56..804c30c 100644
--- a/src/test/java/org/apache/commons/sanselan/common/bytesource/ByteSourceDataTest.java
+++ b/src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceDataTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.common.bytesource;
+package org.apache.commons.imaging.common.bytesource;
 
 import java.io.ByteArrayInputStream;
 import java.io.File;
@@ -23,10 +23,10 @@
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceFile;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceInputStream;
-import org.apache.commons.sanselan.util.IoUtils;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
+import org.apache.commons.imaging.common.bytesource.ByteSourceInputStream;
+import org.apache.commons.imaging.util.IoUtils;
 
 public class ByteSourceDataTest extends ByteSourceTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/common/bytesource/ByteSourceImageTest.java b/src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceImageTest.java
similarity index 95%
rename from src/test/java/org/apache/commons/sanselan/common/bytesource/ByteSourceImageTest.java
rename to src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceImageTest.java
index 95784b4..93607ad 100644
--- a/src/test/java/org/apache/commons/sanselan/common/bytesource/ByteSourceImageTest.java
+++ b/src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceImageTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.common.bytesource;
+package org.apache.commons.imaging.common.bytesource;
 
 import java.awt.Dimension;
 import java.awt.image.BufferedImage;
@@ -28,12 +28,12 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.util.Debug;
-import org.apache.commons.sanselan.util.IoUtils;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.util.Debug;
+import org.apache.commons.imaging.util.IoUtils;
 
 public class ByteSourceImageTest extends ByteSourceTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/common/bytesource/ByteSourceTest.java b/src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceTest.java
similarity index 95%
rename from src/test/java/org/apache/commons/sanselan/common/bytesource/ByteSourceTest.java
rename to src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceTest.java
index 2bd30f1..cff6a16 100644
--- a/src/test/java/org/apache/commons/sanselan/common/bytesource/ByteSourceTest.java
+++ b/src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.common.bytesource;
+package org.apache.commons.imaging.common.bytesource;
 
 import java.io.BufferedOutputStream;
 import java.io.ByteArrayOutputStream;
@@ -24,7 +24,7 @@
 import java.io.IOException;
 import java.io.OutputStream;
 
-import org.apache.commons.sanselan.SanselanTest;
+import org.apache.commons.imaging.SanselanTest;
 
 public abstract class ByteSourceTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/examples/ImageReadExample.java b/src/test/java/org/apache/commons/imaging/examples/ImageReadExample.java
similarity index 90%
rename from src/test/java/org/apache/commons/sanselan/examples/ImageReadExample.java
rename to src/test/java/org/apache/commons/imaging/examples/ImageReadExample.java
index 3a96e08..55d3a77 100644
--- a/src/test/java/org/apache/commons/sanselan/examples/ImageReadExample.java
+++ b/src/test/java/org/apache/commons/imaging/examples/ImageReadExample.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.examples;
+package org.apache.commons.imaging.examples;
 
 import java.awt.GraphicsConfiguration;
 import java.awt.GraphicsDevice;
@@ -26,10 +26,10 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanConstants;
-import org.apache.commons.sanselan.common.IBufferedImageFactory;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanConstants;
+import org.apache.commons.imaging.common.IBufferedImageFactory;
 
 public class ImageReadExample
 {
diff --git a/src/test/java/org/apache/commons/sanselan/examples/ImageWriteExample.java b/src/test/java/org/apache/commons/imaging/examples/ImageWriteExample.java
similarity index 80%
rename from src/test/java/org/apache/commons/sanselan/examples/ImageWriteExample.java
rename to src/test/java/org/apache/commons/imaging/examples/ImageWriteExample.java
index f7671be..9112df1 100644
--- a/src/test/java/org/apache/commons/sanselan/examples/ImageWriteExample.java
+++ b/src/test/java/org/apache/commons/imaging/examples/ImageWriteExample.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.examples;
+package org.apache.commons.imaging.examples;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -22,12 +22,12 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
 
 public class ImageWriteExample
 {
diff --git a/src/test/java/org/apache/commons/sanselan/examples/MetadataExample.java b/src/test/java/org/apache/commons/imaging/examples/MetadataExample.java
similarity index 90%
rename from src/test/java/org/apache/commons/sanselan/examples/MetadataExample.java
rename to src/test/java/org/apache/commons/imaging/examples/MetadataExample.java
index 1472765..dae2e99 100644
--- a/src/test/java/org/apache/commons/sanselan/examples/MetadataExample.java
+++ b/src/test/java/org/apache/commons/imaging/examples/MetadataExample.java
@@ -14,23 +14,23 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.examples;
+package org.apache.commons.imaging.examples;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.RationalNumber;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageMetadata;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.formats.tiff.TiffImageMetadata;
-import org.apache.commons.sanselan.formats.tiff.constants.ExifTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.GpsTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffTagConstants;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.RationalNumber;
+import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.formats.tiff.TiffImageMetadata;
+import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.GpsTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
 
 public class MetadataExample
 {
diff --git a/src/test/java/org/apache/commons/sanselan/examples/SampleUsage.java b/src/test/java/org/apache/commons/imaging/examples/SampleUsage.java
similarity index 93%
rename from src/test/java/org/apache/commons/sanselan/examples/SampleUsage.java
rename to src/test/java/org/apache/commons/imaging/examples/SampleUsage.java
index 961782b..358c215 100644
--- a/src/test/java/org/apache/commons/sanselan/examples/SampleUsage.java
+++ b/src/test/java/org/apache/commons/imaging/examples/SampleUsage.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.examples;
+package org.apache.commons.imaging.examples;
 
 import java.awt.Dimension;
 import java.awt.color.ICC_Profile;
@@ -25,11 +25,11 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.commons.sanselan.FormatCompliance;
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
+import org.apache.commons.imaging.FormatCompliance;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
 
 public class SampleUsage
 {
diff --git a/src/test/java/org/apache/commons/sanselan/examples/WriteExifMetadataExample.java b/src/test/java/org/apache/commons/imaging/examples/WriteExifMetadataExample.java
similarity index 93%
rename from src/test/java/org/apache/commons/sanselan/examples/WriteExifMetadataExample.java
rename to src/test/java/org/apache/commons/imaging/examples/WriteExifMetadataExample.java
index 5a2c1c2..854ac75 100644
--- a/src/test/java/org/apache/commons/sanselan/examples/WriteExifMetadataExample.java
+++ b/src/test/java/org/apache/commons/imaging/examples/WriteExifMetadataExample.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.examples;
+package org.apache.commons.imaging.examples;
 
 import java.io.BufferedOutputStream;
 import java.io.File;
@@ -22,18 +22,18 @@
 import java.io.IOException;
 import java.io.OutputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.common.RationalNumber;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageMetadata;
-import org.apache.commons.sanselan.formats.jpeg.exif.ExifRewriter;
-import org.apache.commons.sanselan.formats.tiff.TiffImageMetadata;
-import org.apache.commons.sanselan.formats.tiff.constants.ExifTagConstants;
-import org.apache.commons.sanselan.formats.tiff.write.TiffOutputDirectory;
-import org.apache.commons.sanselan.formats.tiff.write.TiffOutputSet;
-import org.apache.commons.sanselan.util.IoUtils;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.common.RationalNumber;
+import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata;
+import org.apache.commons.imaging.formats.jpeg.exif.ExifRewriter;
+import org.apache.commons.imaging.formats.tiff.TiffImageMetadata;
+import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants;
+import org.apache.commons.imaging.formats.tiff.write.TiffOutputDirectory;
+import org.apache.commons.imaging.formats.tiff.write.TiffOutputSet;
+import org.apache.commons.imaging.util.IoUtils;
 
 public class WriteExifMetadataExample
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/bmp/BmpBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/bmp/BmpBaseTest.java
similarity index 85%
rename from src/test/java/org/apache/commons/sanselan/formats/bmp/BmpBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/bmp/BmpBaseTest.java
index d0ae061..375e05b 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/bmp/BmpBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/bmp/BmpBaseTest.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.bmp;
+package org.apache.commons.imaging.formats.bmp;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanTest;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanTest;
 
 public abstract class BmpBaseTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/bmp/BmpReadTest.java b/src/test/java/org/apache/commons/imaging/formats/bmp/BmpReadTest.java
similarity index 87%
rename from src/test/java/org/apache/commons/sanselan/formats/bmp/BmpReadTest.java
rename to src/test/java/org/apache/commons/imaging/formats/bmp/BmpReadTest.java
index 486b574..c8fed22 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/bmp/BmpReadTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/bmp/BmpReadTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.bmp;
+package org.apache.commons.imaging.formats.bmp;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -23,10 +23,10 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.util.Debug;
 
 public class BmpReadTest extends BmpBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/bmp/BmpRoundtripTest.java b/src/test/java/org/apache/commons/imaging/formats/bmp/BmpRoundtripTest.java
similarity index 94%
rename from src/test/java/org/apache/commons/sanselan/formats/bmp/BmpRoundtripTest.java
rename to src/test/java/org/apache/commons/imaging/formats/bmp/BmpRoundtripTest.java
index f7fe490..48846c3 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/bmp/BmpRoundtripTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/bmp/BmpRoundtripTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.bmp;
+package org.apache.commons.imaging.formats.bmp;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -24,12 +24,12 @@
 import java.util.Map;
 import java.util.Random;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.util.Debug;
-import org.apache.commons.sanselan.util.IoUtils;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.util.Debug;
+import org.apache.commons.imaging.util.IoUtils;
 
 public class BmpRoundtripTest extends BmpBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/dcx/DcxBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/dcx/DcxBaseTest.java
similarity index 85%
rename from src/test/java/org/apache/commons/sanselan/formats/dcx/DcxBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/dcx/DcxBaseTest.java
index 0447665..ac0d037 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/dcx/DcxBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/dcx/DcxBaseTest.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.dcx;
+package org.apache.commons.imaging.formats.dcx;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanTest;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanTest;
 
 public abstract class DcxBaseTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/dcx/DcxReadTest.java b/src/test/java/org/apache/commons/imaging/formats/dcx/DcxReadTest.java
similarity index 87%
rename from src/test/java/org/apache/commons/sanselan/formats/dcx/DcxReadTest.java
rename to src/test/java/org/apache/commons/imaging/formats/dcx/DcxReadTest.java
index e551005..eced16a 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/dcx/DcxReadTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/dcx/DcxReadTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.dcx;
+package org.apache.commons.imaging.formats.dcx;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -23,10 +23,10 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.util.Debug;
 
 public class DcxReadTest extends DcxBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/gif/GifBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/gif/GifBaseTest.java
similarity index 85%
rename from src/test/java/org/apache/commons/sanselan/formats/gif/GifBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/gif/GifBaseTest.java
index 64e0deb..f825871 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/gif/GifBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/gif/GifBaseTest.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.gif;
+package org.apache.commons.imaging.formats.gif;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanTest;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanTest;
 
 public abstract class GifBaseTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/gif/GifReadTest.java b/src/test/java/org/apache/commons/imaging/formats/gif/GifReadTest.java
similarity index 86%
rename from src/test/java/org/apache/commons/sanselan/formats/gif/GifReadTest.java
rename to src/test/java/org/apache/commons/imaging/formats/gif/GifReadTest.java
index 6026256..7e6f699 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/gif/GifReadTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/gif/GifReadTest.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.gif;
+package org.apache.commons.imaging.formats.gif;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.util.Debug;
 
 public class GifReadTest extends GifBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/icns/IcnsBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/icns/IcnsBaseTest.java
similarity index 85%
rename from src/test/java/org/apache/commons/sanselan/formats/icns/IcnsBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/icns/IcnsBaseTest.java
index 402e78d..80ca3c0 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/icns/IcnsBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/icns/IcnsBaseTest.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.icns;
+package org.apache.commons.imaging.formats.icns;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanTest;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanTest;
 
 public abstract class IcnsBaseTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/icns/IcnsReadTest.java b/src/test/java/org/apache/commons/imaging/formats/icns/IcnsReadTest.java
similarity index 87%
rename from src/test/java/org/apache/commons/sanselan/formats/icns/IcnsReadTest.java
rename to src/test/java/org/apache/commons/imaging/formats/icns/IcnsReadTest.java
index 29559a5..4ad5b53 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/icns/IcnsReadTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/icns/IcnsReadTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.icns;
+package org.apache.commons.imaging.formats.icns;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -23,10 +23,10 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.util.Debug;
 
 public class IcnsReadTest extends IcnsBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/icns/IcnsRoundTripTest.java b/src/test/java/org/apache/commons/imaging/formats/icns/IcnsRoundTripTest.java
similarity index 97%
rename from src/test/java/org/apache/commons/sanselan/formats/icns/IcnsRoundTripTest.java
rename to src/test/java/org/apache/commons/imaging/formats/icns/IcnsRoundTripTest.java
index 571a172..c5abc80 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/icns/IcnsRoundTripTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/icns/IcnsRoundTripTest.java
@@ -15,20 +15,20 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.icns;
+package org.apache.commons.imaging.formats.icns;
 
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.BinaryOutputStream;
-import org.apache.commons.sanselan.formats.icns.IcnsImageParser;
-import org.apache.commons.sanselan.formats.icns.IcnsType;
-import org.apache.commons.sanselan.util.Debug;
-import org.apache.commons.sanselan.util.IoUtils;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.BinaryOutputStream;
+import org.apache.commons.imaging.formats.icns.IcnsImageParser;
+import org.apache.commons.imaging.formats.icns.IcnsType;
+import org.apache.commons.imaging.util.Debug;
+import org.apache.commons.imaging.util.IoUtils;
 
 public class IcnsRoundTripTest extends IcnsBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/ico/IcoBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/ico/IcoBaseTest.java
similarity index 90%
rename from src/test/java/org/apache/commons/sanselan/formats/ico/IcoBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/ico/IcoBaseTest.java
index ec99577..cc68a84 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/ico/IcoBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/ico/IcoBaseTest.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.ico;
+package org.apache.commons.imaging.formats.ico;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.SanselanTest;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.SanselanTest;
 
 public abstract class IcoBaseTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/ico/IcoReadTest.java b/src/test/java/org/apache/commons/imaging/formats/ico/IcoReadTest.java
similarity index 87%
rename from src/test/java/org/apache/commons/sanselan/formats/ico/IcoReadTest.java
rename to src/test/java/org/apache/commons/imaging/formats/ico/IcoReadTest.java
index ce2914c..9fee53e 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/ico/IcoReadTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/ico/IcoReadTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.ico;
+package org.apache.commons.imaging.formats.ico;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -23,10 +23,10 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.util.Debug;
 
 public class IcoReadTest extends IcoBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/ico/IcoRoundtripTest.java b/src/test/java/org/apache/commons/imaging/formats/ico/IcoRoundtripTest.java
similarity index 98%
rename from src/test/java/org/apache/commons/sanselan/formats/ico/IcoRoundtripTest.java
rename to src/test/java/org/apache/commons/imaging/formats/ico/IcoRoundtripTest.java
index 4c55d25..17fbb26 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/ico/IcoRoundtripTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/ico/IcoRoundtripTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.ico;
+package org.apache.commons.imaging.formats.ico;
 
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayOutputStream;
@@ -25,12 +25,12 @@
 import java.util.Iterator;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.BinaryOutputStream;
-import org.apache.commons.sanselan.util.Debug;
-import org.apache.commons.sanselan.util.IoUtils;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.BinaryOutputStream;
+import org.apache.commons.imaging.util.Debug;
+import org.apache.commons.imaging.util.IoUtils;
 
 public class IcoRoundtripTest extends IcoBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/JpegBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegBaseTest.java
similarity index 85%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/JpegBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/JpegBaseTest.java
index 929bd99..f35e24a 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/JpegBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegBaseTest.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg;
+package org.apache.commons.imaging.formats.jpeg;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanTest;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanTest;
 
 public abstract class JpegBaseTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/JpegReadTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegReadTest.java
similarity index 88%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/JpegReadTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/JpegReadTest.java
index c0f99f9..552226c 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/JpegReadTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegReadTest.java
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg;
+package org.apache.commons.imaging.formats.jpeg;
 
 import java.io.File;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.util.Debug;
 
 public class JpegReadTest extends JpegBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/JpegWithJpegThumbnailTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegWithJpegThumbnailTest.java
similarity index 83%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/JpegWithJpegThumbnailTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/JpegWithJpegThumbnailTest.java
index c75e21a..ae4a062 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/JpegWithJpegThumbnailTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegWithJpegThumbnailTest.java
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg;
+package org.apache.commons.imaging.formats.jpeg;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanTest;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageMetadata;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanTest;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata;
 
 public class JpegWithJpegThumbnailTest extends SanselanTest {
 
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/decoder/DctTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/decoder/DctTest.java
similarity index 98%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/decoder/DctTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/decoder/DctTest.java
index 8b9a8f4..97aabc0 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/decoder/DctTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/decoder/DctTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.decoder;
+package org.apache.commons.imaging.formats.jpeg.decoder;
 
 import junit.framework.TestCase;
 
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/AsciiFieldTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/AsciiFieldTest.java
similarity index 85%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/AsciiFieldTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/exif/AsciiFieldTest.java
index dee45e2..89c25d5 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/AsciiFieldTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/AsciiFieldTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.exif;
+package org.apache.commons.imaging.formats.jpeg.exif;
 
 import java.io.File;
 import java.util.HashMap;
@@ -24,13 +24,13 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageMetadata;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.formats.tiff.TiffImageMetadata;
-import org.apache.commons.sanselan.formats.tiff.constants.AllTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffTagConstants;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.formats.tiff.TiffImageMetadata;
+import org.apache.commons.imaging.formats.tiff.constants.AllTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants;
 
 public class AsciiFieldTest extends ExifBaseTest implements AllTagConstants {
 
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifBaseTest.java
similarity index 89%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifBaseTest.java
index 6d90b4f..1272a3e 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifBaseTest.java
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.exif;
+package org.apache.commons.imaging.formats.jpeg.exif;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.SanselanTest;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceFile;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.SanselanTest;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
+import org.apache.commons.imaging.formats.jpeg.JpegImageParser;
 
 public abstract class ExifBaseTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifDumpTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifDumpTest.java
similarity index 83%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifDumpTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifDumpTest.java
index 13fbe39..7e136bf 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifDumpTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifDumpTest.java
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.exif;
+package org.apache.commons.imaging.formats.jpeg.exif;
 
 import java.io.File;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceFile;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageMetadata;
-import org.apache.commons.sanselan.formats.jpeg.JpegUtils;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
+import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata;
+import org.apache.commons.imaging.formats.jpeg.JpegUtils;
+import org.apache.commons.imaging.util.Debug;
 
 public class ExifDumpTest extends ExifBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifRewriteTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriteTest.java
similarity index 95%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifRewriteTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriteTest.java
index f1bed00..f0ca33f 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifRewriteTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriteTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.exif;
+package org.apache.commons.imaging.formats.jpeg.exif;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -28,22 +28,22 @@
 import java.util.List;
 import java.util.Set;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceArray;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceFile;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageMetadata;
-import org.apache.commons.sanselan.formats.jpeg.JpegUtils;
-import org.apache.commons.sanselan.formats.jpeg.exif.ExifRewriter;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.formats.tiff.TiffImageMetadata;
-import org.apache.commons.sanselan.formats.tiff.constants.AllTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffFieldTypeConstants;
-import org.apache.commons.sanselan.formats.tiff.write.TiffOutputSet;
-import org.apache.commons.sanselan.util.Debug;
-import org.apache.commons.sanselan.util.IoUtils;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceArray;
+import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
+import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata;
+import org.apache.commons.imaging.formats.jpeg.JpegUtils;
+import org.apache.commons.imaging.formats.jpeg.exif.ExifRewriter;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.formats.tiff.TiffImageMetadata;
+import org.apache.commons.imaging.formats.tiff.constants.AllTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffFieldTypeConstants;
+import org.apache.commons.imaging.formats.tiff.write.TiffOutputSet;
+import org.apache.commons.imaging.util.Debug;
+import org.apache.commons.imaging.util.IoUtils;
 
 public class ExifRewriteTest extends ExifBaseTest implements AllTagConstants
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/GpsTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/GpsTest.java
similarity index 90%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/GpsTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/exif/GpsTest.java
index efd36fd..826b87a 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/GpsTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/GpsTest.java
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.exif;
+package org.apache.commons.imaging.formats.jpeg.exif;
 
 import java.io.File;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanConstants;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageMetadata;
-import org.apache.commons.sanselan.formats.tiff.TiffImageMetadata;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanConstants;
+import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata;
+import org.apache.commons.imaging.formats.tiff.TiffImageMetadata;
+import org.apache.commons.imaging.util.Debug;
 
 public class GpsTest extends ExifBaseTest implements SanselanConstants
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/MakerNoteFieldTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/MakerNoteFieldTest.java
similarity index 87%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/MakerNoteFieldTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/exif/MakerNoteFieldTest.java
index 4b069d5..527ccdb 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/MakerNoteFieldTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/MakerNoteFieldTest.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.exif;
+package org.apache.commons.imaging.formats.jpeg.exif;
 
 import java.io.File;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.formats.tiff.constants.ExifTagConstants;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants;
+import org.apache.commons.imaging.util.Debug;
 
 public class MakerNoteFieldTest extends SpecificExifTagTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/SpecificExifTagTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/SpecificExifTagTest.java
similarity index 83%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/SpecificExifTagTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/exif/SpecificExifTagTest.java
index 79ed5a2..a504eeb 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/SpecificExifTagTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/SpecificExifTagTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.exif;
+package org.apache.commons.imaging.formats.jpeg.exif;
 
 import java.io.File;
 import java.io.IOException;
@@ -23,15 +23,15 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageMetadata;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.formats.tiff.TiffImageMetadata;
-import org.apache.commons.sanselan.formats.tiff.constants.AllTagConstants;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.formats.tiff.TiffImageMetadata;
+import org.apache.commons.imaging.formats.tiff.constants.AllTagConstants;
+import org.apache.commons.imaging.util.Debug;
 
 public abstract class SpecificExifTagTest extends ExifBaseTest
         implements
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/TextFieldTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/TextFieldTest.java
similarity index 83%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/TextFieldTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/exif/TextFieldTest.java
index 9aa370e..9663439 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/TextFieldTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/TextFieldTest.java
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.exif;
+package org.apache.commons.imaging.formats.jpeg.exif;
 
 import java.io.File;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.formats.tiff.TiffField;
-import org.apache.commons.sanselan.formats.tiff.constants.ExifTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.GpsTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.formats.tiff.TiffField;
+import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.GpsTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType;
+import org.apache.commons.imaging.util.Debug;
 
 public class TextFieldTest extends SpecificExifTagTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/WriteExifMetadataExampleTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/WriteExifMetadataExampleTest.java
similarity index 90%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/WriteExifMetadataExampleTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/exif/WriteExifMetadataExampleTest.java
index 8eb8b58..a0ffcb5 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/WriteExifMetadataExampleTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/WriteExifMetadataExampleTest.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.exif;
+package org.apache.commons.imaging.formats.jpeg.exif;
 
 import java.io.File;
 import java.util.List;
 
-import org.apache.commons.sanselan.examples.WriteExifMetadataExample;
-import org.apache.commons.sanselan.formats.jpeg.exif.ExifRewriter;
-import org.apache.commons.sanselan.formats.tiff.constants.AllTagConstants;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.examples.WriteExifMetadataExample;
+import org.apache.commons.imaging.formats.jpeg.exif.ExifRewriter;
+import org.apache.commons.imaging.formats.tiff.constants.AllTagConstants;
+import org.apache.commons.imaging.util.Debug;
 
 public class WriteExifMetadataExampleTest extends ExifBaseTest
         implements
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcBaseTest.java
similarity index 89%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcBaseTest.java
index 62546c2..cb8e142 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcBaseTest.java
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.iptc;
+package org.apache.commons.imaging.formats.jpeg.iptc;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.SanselanTest;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceFile;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.SanselanTest;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
+import org.apache.commons.imaging.formats.jpeg.JpegImageParser;
 
 public abstract class IptcBaseTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcDumpTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcDumpTest.java
similarity index 88%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcDumpTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcDumpTest.java
index d57cd51..576ea5c 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcDumpTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcDumpTest.java
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.iptc;
+package org.apache.commons.imaging.formats.jpeg.iptc;
 
 import java.io.File;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageMetadata;
-import org.apache.commons.sanselan.formats.jpeg.JpegPhotoshopMetadata;
-import org.apache.commons.sanselan.formats.jpeg.iptc.IptcRecord;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata;
+import org.apache.commons.imaging.formats.jpeg.JpegPhotoshopMetadata;
+import org.apache.commons.imaging.formats.jpeg.iptc.IptcRecord;
+import org.apache.commons.imaging.util.Debug;
 
 public class IptcDumpTest extends IptcBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcUpdateTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcUpdateTest.java
similarity index 96%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcUpdateTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcUpdateTest.java
index 8c49cbd..8b12401 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcUpdateTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcUpdateTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.iptc;
+package org.apache.commons.imaging.formats.jpeg.iptc;
 
 import java.io.BufferedOutputStream;
 import java.io.File;
@@ -26,14 +26,14 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceFile;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageParser;
-import org.apache.commons.sanselan.formats.jpeg.JpegPhotoshopMetadata;
-import org.apache.commons.sanselan.formats.jpeg.iptc.IptcRecord;
-import org.apache.commons.sanselan.formats.jpeg.iptc.JpegIptcRewriter;
-import org.apache.commons.sanselan.formats.jpeg.iptc.PhotoshopApp13Data;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
+import org.apache.commons.imaging.formats.jpeg.JpegImageParser;
+import org.apache.commons.imaging.formats.jpeg.JpegPhotoshopMetadata;
+import org.apache.commons.imaging.formats.jpeg.iptc.IptcRecord;
+import org.apache.commons.imaging.formats.jpeg.iptc.JpegIptcRewriter;
+import org.apache.commons.imaging.formats.jpeg.iptc.PhotoshopApp13Data;
+import org.apache.commons.imaging.util.Debug;
 
 public class IptcUpdateTest extends IptcBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpBaseTest.java
similarity index 89%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpBaseTest.java
index 9b1d73a..d4d58fa 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpBaseTest.java
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.xmp;
+package org.apache.commons.imaging.formats.jpeg.xmp;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.SanselanTest;
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceFile;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageParser;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.SanselanTest;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
+import org.apache.commons.imaging.formats.jpeg.JpegImageParser;
 
 public abstract class JpegXmpBaseTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpDumpTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpDumpTest.java
similarity index 84%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpDumpTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpDumpTest.java
index 1f7b35d..69d3540 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpDumpTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpDumpTest.java
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.xmp;
+package org.apache.commons.imaging.formats.jpeg.xmp;
 
 import java.io.File;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceFile;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageParser;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
+import org.apache.commons.imaging.formats.jpeg.JpegImageParser;
+import org.apache.commons.imaging.util.Debug;
 
 public class JpegXmpDumpTest extends JpegXmpBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriteTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriteTest.java
similarity index 92%
rename from src/test/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriteTest.java
rename to src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriteTest.java
index 23b7963..009bf91 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriteTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriteTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.jpeg.xmp;
+package org.apache.commons.imaging.formats.jpeg.xmp;
 
 import java.io.BufferedOutputStream;
 import java.io.File;
@@ -25,11 +25,11 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.common.bytesource.ByteSource;
-import org.apache.commons.sanselan.common.bytesource.ByteSourceFile;
-import org.apache.commons.sanselan.formats.jpeg.JpegImageParser;
-import org.apache.commons.sanselan.formats.jpeg.xmp.JpegXmpRewriter;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.common.bytesource.ByteSource;
+import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
+import org.apache.commons.imaging.formats.jpeg.JpegImageParser;
+import org.apache.commons.imaging.formats.jpeg.xmp.JpegXmpRewriter;
+import org.apache.commons.imaging.util.Debug;
 
 public class JpegXmpRewriteTest extends JpegXmpBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/pcx/PcxBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/pcx/PcxBaseTest.java
similarity index 89%
rename from src/test/java/org/apache/commons/sanselan/formats/pcx/PcxBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/pcx/PcxBaseTest.java
index 346a57b..bda4317 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/pcx/PcxBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/pcx/PcxBaseTest.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.pcx;
+package org.apache.commons.imaging.formats.pcx;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.SanselanTest;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.SanselanTest;
 
 public abstract class PcxBaseTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/pcx/PcxReadTest.java b/src/test/java/org/apache/commons/imaging/formats/pcx/PcxReadTest.java
similarity index 87%
rename from src/test/java/org/apache/commons/sanselan/formats/pcx/PcxReadTest.java
rename to src/test/java/org/apache/commons/imaging/formats/pcx/PcxReadTest.java
index b162613..26dc731 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/pcx/PcxReadTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/pcx/PcxReadTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.pcx;
+package org.apache.commons.imaging.formats.pcx;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -23,10 +23,10 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.util.Debug;
 
 public class PcxReadTest extends PcxBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/png/ConvertPngToGifTest.java b/src/test/java/org/apache/commons/imaging/formats/png/ConvertPngToGifTest.java
similarity index 90%
rename from src/test/java/org/apache/commons/sanselan/formats/png/ConvertPngToGifTest.java
rename to src/test/java/org/apache/commons/imaging/formats/png/ConvertPngToGifTest.java
index 964beee..000d8f6 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/png/ConvertPngToGifTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/png/ConvertPngToGifTest.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
 import java.util.Hashtable;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.util.Debug;
 
 public class ConvertPngToGifTest extends PngBaseTest {
 
diff --git a/src/test/java/org/apache/commons/sanselan/formats/png/PngBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/png/PngBaseTest.java
similarity index 85%
rename from src/test/java/org/apache/commons/sanselan/formats/png/PngBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/png/PngBaseTest.java
index 5033ea2..f1a12f1 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/png/PngBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/png/PngBaseTest.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanTest;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanTest;
 
 public abstract class PngBaseTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/png/PngMultipleRoundtripTest.java b/src/test/java/org/apache/commons/imaging/formats/png/PngMultipleRoundtripTest.java
similarity index 92%
rename from src/test/java/org/apache/commons/sanselan/formats/png/PngMultipleRoundtripTest.java
rename to src/test/java/org/apache/commons/imaging/formats/png/PngMultipleRoundtripTest.java
index 327eda7..6c84652 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/png/PngMultipleRoundtripTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/png/PngMultipleRoundtripTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -23,9 +23,9 @@
 import java.util.Map;
 
 import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.util.Debug;
 
 public class PngMultipleRoundtripTest extends PngBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/png/PngReadTest.java b/src/test/java/org/apache/commons/imaging/formats/png/PngReadTest.java
similarity index 90%
rename from src/test/java/org/apache/commons/sanselan/formats/png/PngReadTest.java
rename to src/test/java/org/apache/commons/imaging/formats/png/PngReadTest.java
index 5d9e060..5d18d5e 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/png/PngReadTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/png/PngReadTest.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.util.Debug;
 
 public class PngReadTest extends PngBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/png/PngTextTest.java b/src/test/java/org/apache/commons/imaging/formats/png/PngTextTest.java
similarity index 88%
rename from src/test/java/org/apache/commons/sanselan/formats/png/PngTextTest.java
rename to src/test/java/org/apache/commons/imaging/formats/png/PngTextTest.java
index 718e2c3..ce62d72 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/png/PngTextTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/png/PngTextTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 import java.awt.Color;
 import java.awt.image.BufferedImage;
@@ -25,12 +25,12 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.formats.png.PngConstants;
-import org.apache.commons.sanselan.formats.png.PngImageInfo;
-import org.apache.commons.sanselan.formats.png.PngText;
-import org.apache.commons.sanselan.util.IoUtils;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.formats.png.PngConstants;
+import org.apache.commons.imaging.formats.png.PngImageInfo;
+import org.apache.commons.imaging.formats.png.PngText;
+import org.apache.commons.imaging.util.IoUtils;
 
 public class PngTextTest extends PngBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/png/PngWriteForceTrueColorText.java b/src/test/java/org/apache/commons/imaging/formats/png/PngWriteForceTrueColorText.java
similarity index 90%
rename from src/test/java/org/apache/commons/sanselan/formats/png/PngWriteForceTrueColorText.java
rename to src/test/java/org/apache/commons/imaging/formats/png/PngWriteForceTrueColorText.java
index 8bec926..1f4b8f2 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/png/PngWriteForceTrueColorText.java
+++ b/src/test/java/org/apache/commons/imaging/formats/png/PngWriteForceTrueColorText.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -23,10 +23,10 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.formats.png.PngConstants;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.formats.png.PngConstants;
+import org.apache.commons.imaging.util.Debug;
 
 public class PngWriteForceTrueColorText extends PngBaseTest {
 
diff --git a/src/test/java/org/apache/commons/sanselan/formats/png/PngWriteReadTest.java b/src/test/java/org/apache/commons/imaging/formats/png/PngWriteReadTest.java
similarity index 94%
rename from src/test/java/org/apache/commons/sanselan/formats/png/PngWriteReadTest.java
rename to src/test/java/org/apache/commons/imaging/formats/png/PngWriteReadTest.java
index a56d905..f8ca38d 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/png/PngWriteReadTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/png/PngWriteReadTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.png;
+package org.apache.commons.imaging.formats.png;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -24,12 +24,12 @@
 import java.util.Map;
 import java.util.Random;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanTest;
-import org.apache.commons.sanselan.util.IoUtils;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanTest;
+import org.apache.commons.imaging.util.IoUtils;
 
 public class PngWriteReadTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/rgbe/RgbeBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeBaseTest.java
similarity index 86%
rename from src/test/java/org/apache/commons/sanselan/formats/rgbe/RgbeBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeBaseTest.java
index 8e7b784..175f759 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/rgbe/RgbeBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeBaseTest.java
@@ -14,16 +14,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.rgbe;
+package org.apache.commons.imaging.formats.rgbe;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanTest;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanTest;
 
 public abstract class RgbeBaseTest extends SanselanTest {
     private static boolean isRgbe( File file ) throws IOException,
diff --git a/src/test/java/org/apache/commons/sanselan/formats/rgbe/RgbeReadTest.java b/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeReadTest.java
similarity index 82%
rename from src/test/java/org/apache/commons/sanselan/formats/rgbe/RgbeReadTest.java
rename to src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeReadTest.java
index 5e13ff2..a8c57ef 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/rgbe/RgbeReadTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeReadTest.java
@@ -14,19 +14,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.rgbe;
+package org.apache.commons.imaging.formats.rgbe;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.util.Debug;
 
 public class RgbeReadTest extends RgbeBaseTest {
     public void test() throws IOException, ImageReadException,
diff --git a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffBaseTest.java
similarity index 85%
rename from src/test/java/org/apache/commons/sanselan/formats/tiff/TiffBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/tiff/TiffBaseTest.java
index 2c15c8a..df65cd3 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffBaseTest.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanTest;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanTest;
 
 public abstract class TiffBaseTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffCcittTest.java b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffCcittTest.java
similarity index 96%
rename from src/test/java/org/apache/commons/sanselan/formats/tiff/TiffCcittTest.java
rename to src/test/java/org/apache/commons/imaging/formats/tiff/TiffCcittTest.java
index a00ff56..333d49b 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffCcittTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffCcittTest.java
@@ -15,20 +15,20 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.util.HashMap;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanConstants;
-import org.apache.commons.sanselan.common.itu_t4.T4AndT6Compression;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanConstants;
+import org.apache.commons.imaging.common.itu_t4.T4AndT6Compression;
+import org.apache.commons.imaging.formats.tiff.constants.TiffConstants;
+import org.apache.commons.imaging.util.Debug;
 
 public class TiffCcittTest extends TiffBaseTest {
     public void testAll5x2Compressions() {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffLzwTest.java b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffLzwTest.java
similarity index 96%
rename from src/test/java/org/apache/commons/sanselan/formats/tiff/TiffLzwTest.java
rename to src/test/java/org/apache/commons/imaging/formats/tiff/TiffLzwTest.java
index 46f0b14..a455537 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffLzwTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffLzwTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -23,10 +23,10 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.sanselan.common.BinaryConstants;
-import org.apache.commons.sanselan.common.mylzw.MyLzwCompressor;
-import org.apache.commons.sanselan.common.mylzw.MyLzwDecompressor;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.common.BinaryConstants;
+import org.apache.commons.imaging.common.mylzw.MyLzwCompressor;
+import org.apache.commons.imaging.common.mylzw.MyLzwDecompressor;
+import org.apache.commons.imaging.util.Debug;
 
 public class TiffLzwTest extends TiffBaseTest implements BinaryConstants
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffReadTest.java b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffReadTest.java
similarity index 86%
rename from src/test/java/org/apache/commons/sanselan/formats/tiff/TiffReadTest.java
rename to src/test/java/org/apache/commons/imaging/formats/tiff/TiffReadTest.java
index dda6169..353ac99 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffReadTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffReadTest.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.util.Debug;
 
 public class TiffReadTest extends TiffBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffRoundtripTest.java b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffRoundtripTest.java
similarity index 87%
rename from src/test/java/org/apache/commons/sanselan/formats/tiff/TiffRoundtripTest.java
rename to src/test/java/org/apache/commons/imaging/formats/tiff/TiffRoundtripTest.java
index 3c6c894..05fceff 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffRoundtripTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffRoundtripTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -23,11 +23,11 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.util.Debug;
 
 public class TiffRoundtripTest extends TiffBaseTest {
 
diff --git a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffTagIntegrityTest.java
similarity index 70%
rename from src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java
rename to src/test/java/org/apache/commons/imaging/formats/tiff/TiffTagIntegrityTest.java
index 2c5583e..4fe9b09 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffTagIntegrityTest.java
@@ -14,31 +14,31 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.sanselan.formats.tiff;
+package org.apache.commons.imaging.formats.tiff;
 
 import java.lang.reflect.Field;
 import java.util.List;
 
-import org.apache.commons.sanselan.SanselanTest;
-import org.apache.commons.sanselan.formats.tiff.constants.AdobePageMaker6TagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.AdobePhotoshopTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.AliasSketchbookProTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.DcfTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.DngTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.ExifTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.GdalLibraryTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.GeoTiffTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.GpsTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.MicrosoftHdPhotoTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.MicrosoftTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.MolecularDynamicsGelTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.OceScanjobTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.Rfc2301TagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.Tiff4TagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffEpTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.TiffTagConstants;
-import org.apache.commons.sanselan.formats.tiff.constants.WangTagConstants;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.imaging.SanselanTest;
+import org.apache.commons.imaging.formats.tiff.constants.AdobePageMaker6TagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.AdobePhotoshopTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.AliasSketchbookProTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.DcfTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.DngTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.GdalLibraryTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.GeoTiffTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.GpsTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.MicrosoftHdPhotoTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.MicrosoftTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.MolecularDynamicsGelTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.OceScanjobTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.Rfc2301TagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.Tiff4TagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffEpTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants;
+import org.apache.commons.imaging.formats.tiff.constants.WangTagConstants;
+import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
 
 public class TiffTagIntegrityTest extends SanselanTest {
     public void testTagIntegrity() {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/wbmp/WbmpBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/wbmp/WbmpBaseTest.java
similarity index 88%
rename from src/test/java/org/apache/commons/sanselan/formats/wbmp/WbmpBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/wbmp/WbmpBaseTest.java
index bb1ae5b..0b81b81 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/wbmp/WbmpBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/wbmp/WbmpBaseTest.java
@@ -13,14 +13,14 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.wbmp;
+package org.apache.commons.imaging.formats.wbmp;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.SanselanTest;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.SanselanTest;
 
 public abstract class WbmpBaseTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/wbmp/WbmpReadTest.java b/src/test/java/org/apache/commons/imaging/formats/wbmp/WbmpReadTest.java
similarity index 85%
rename from src/test/java/org/apache/commons/sanselan/formats/wbmp/WbmpReadTest.java
rename to src/test/java/org/apache/commons/imaging/formats/wbmp/WbmpReadTest.java
index fc29247..48d7d8c 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/wbmp/WbmpReadTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/wbmp/WbmpReadTest.java
@@ -13,7 +13,7 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.wbmp;
+package org.apache.commons.imaging.formats.wbmp;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -21,10 +21,10 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.util.Debug;
 
 public class WbmpReadTest extends WbmpBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/xbm/XbmBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/xbm/XbmBaseTest.java
similarity index 88%
rename from src/test/java/org/apache/commons/sanselan/formats/xbm/XbmBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/xbm/XbmBaseTest.java
index b801faa..94fd8a2 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/xbm/XbmBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/xbm/XbmBaseTest.java
@@ -13,14 +13,14 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.xbm;
+package org.apache.commons.imaging.formats.xbm;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.SanselanTest;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.SanselanTest;
 
 public abstract class XbmBaseTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/xbm/XbmReadTest.java b/src/test/java/org/apache/commons/imaging/formats/xbm/XbmReadTest.java
similarity index 85%
rename from src/test/java/org/apache/commons/sanselan/formats/xbm/XbmReadTest.java
rename to src/test/java/org/apache/commons/imaging/formats/xbm/XbmReadTest.java
index 6940852..230f365 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/xbm/XbmReadTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/xbm/XbmReadTest.java
@@ -13,7 +13,7 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.xbm;
+package org.apache.commons.imaging.formats.xbm;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -21,10 +21,10 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.util.Debug;
 
 public class XbmReadTest extends XbmBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/xmp/XmpDumpTest.java b/src/test/java/org/apache/commons/imaging/formats/xmp/XmpDumpTest.java
similarity index 89%
rename from src/test/java/org/apache/commons/sanselan/formats/xmp/XmpDumpTest.java
rename to src/test/java/org/apache/commons/imaging/formats/xmp/XmpDumpTest.java
index b6851a9..c56b7ca 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/xmp/XmpDumpTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/xmp/XmpDumpTest.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.xmp;
+package org.apache.commons.imaging.formats.xmp;
 
 import java.io.File;
 import java.util.List;
 
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanTest;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanTest;
+import org.apache.commons.imaging.util.Debug;
 
 public class XmpDumpTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/xmp/XmpUpdateTest.java b/src/test/java/org/apache/commons/imaging/formats/xmp/XmpUpdateTest.java
similarity index 92%
rename from src/test/java/org/apache/commons/sanselan/formats/xmp/XmpUpdateTest.java
rename to src/test/java/org/apache/commons/imaging/formats/xmp/XmpUpdateTest.java
index 2a24797..c6b867d 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/xmp/XmpUpdateTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/xmp/XmpUpdateTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.formats.xmp;
+package org.apache.commons.imaging.formats.xmp;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -23,10 +23,10 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanTest;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanTest;
+import org.apache.commons.imaging.util.Debug;
 
 public class XmpUpdateTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/xpm/XpmBaseTest.java b/src/test/java/org/apache/commons/imaging/formats/xpm/XpmBaseTest.java
similarity index 88%
rename from src/test/java/org/apache/commons/sanselan/formats/xpm/XpmBaseTest.java
rename to src/test/java/org/apache/commons/imaging/formats/xpm/XpmBaseTest.java
index 2ef02cf..0f91f27 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/xpm/XpmBaseTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/xpm/XpmBaseTest.java
@@ -13,14 +13,14 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.xpm;
+package org.apache.commons.imaging.formats.xpm;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.SanselanTest;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.SanselanTest;
 
 public abstract class XpmBaseTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/formats/xpm/XpmReadTest.java b/src/test/java/org/apache/commons/imaging/formats/xpm/XpmReadTest.java
similarity index 85%
rename from src/test/java/org/apache/commons/sanselan/formats/xpm/XpmReadTest.java
rename to src/test/java/org/apache/commons/imaging/formats/xpm/XpmReadTest.java
index d8edcfa..2a8128f 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/xpm/XpmReadTest.java
+++ b/src/test/java/org/apache/commons/imaging/formats/xpm/XpmReadTest.java
@@ -13,7 +13,7 @@
  *  under the License.
  */
 
-package org.apache.commons.sanselan.formats.xpm;
+package org.apache.commons.imaging.formats.xpm;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -21,10 +21,10 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageInfo;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.common.IImageMetadata;
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.common.IImageMetadata;
+import org.apache.commons.imaging.util.Debug;
 
 public class XpmReadTest extends XpmBaseTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/roundtrip/RoundtripTest.java b/src/test/java/org/apache/commons/imaging/roundtrip/RoundtripTest.java
similarity index 96%
rename from src/test/java/org/apache/commons/sanselan/roundtrip/RoundtripTest.java
rename to src/test/java/org/apache/commons/imaging/roundtrip/RoundtripTest.java
index f51fd2d..184ff02 100644
--- a/src/test/java/org/apache/commons/sanselan/roundtrip/RoundtripTest.java
+++ b/src/test/java/org/apache/commons/imaging/roundtrip/RoundtripTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.roundtrip;
+package org.apache.commons.imaging.roundtrip;
 
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -23,15 +23,15 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.commons.sanselan.ImageFormat;
-import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
-import org.apache.commons.sanselan.Sanselan;
-import org.apache.commons.sanselan.SanselanConstants;
-import org.apache.commons.sanselan.SanselanTest;
-import org.apache.commons.sanselan.common.RgbBufferedImageFactory;
-import org.apache.commons.sanselan.util.Debug;
-import org.apache.commons.sanselan.util.IoUtils;
+import org.apache.commons.imaging.ImageFormat;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.Sanselan;
+import org.apache.commons.imaging.SanselanConstants;
+import org.apache.commons.imaging.SanselanTest;
+import org.apache.commons.imaging.common.RgbBufferedImageFactory;
+import org.apache.commons.imaging.util.Debug;
+import org.apache.commons.imaging.util.IoUtils;
 
 public class RoundtripTest extends SanselanTest
 {
diff --git a/src/test/java/org/apache/commons/sanselan/test/util/FileSystemTraversal.java b/src/test/java/org/apache/commons/imaging/test/util/FileSystemTraversal.java
similarity index 97%
rename from src/test/java/org/apache/commons/sanselan/test/util/FileSystemTraversal.java
rename to src/test/java/org/apache/commons/imaging/test/util/FileSystemTraversal.java
index e0bf3d0..624808a 100644
--- a/src/test/java/org/apache/commons/sanselan/test/util/FileSystemTraversal.java
+++ b/src/test/java/org/apache/commons/imaging/test/util/FileSystemTraversal.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.commons.sanselan.test.util;
+package org.apache.commons.imaging.test.util;
 
 import java.io.File;
 
-import org.apache.commons.sanselan.util.Debug;
+import org.apache.commons.imaging.util.Debug;
 
 public class FileSystemTraversal
 {
