用于tif缓冲图像的java中的setRgb丢失其坐标信息

时间:2013-01-17 11:31:31

标签: java image-processing bufferedimage javax.imageio

我在java中有一个程序,其中tif文件在源缓冲图像中读取,然后这个缓冲的图像被复制为目标缓冲图像。 当我在磁盘上写入此缓冲图像时,图像会丢失其坐标信息。 可以做些什么,以便不丢失坐标信息?

我的代码是:

/* Check if imageType if tif */
if (imageType.equalsIgnoreCase(TIFF)) {
    bufferedImageType = BufferedImage.TYPE_INT_RGB;
}
BufferedImage destination = new BufferedImage(source.getWidth(), source.getHeight(),
                bufferedImageType);
/* Loop to cover all pixels */
for (int width = 0; width < source.getWidth(); width++) {
    /* Loop to cover all lines */
    for (int height = 0; height < source.getHeight(); height++) {
        destination.setRGB(width, height, source.getRGB(width, height));
    }
}
file = new File(TEMP_DIR + TEMP_FILE_NAME + "tif");
ImageIO.write(destination, "tif", file);

1 个答案:

答案 0 :(得分:0)

我知道这篇文章很老了,但不过......

如果您正在讨论在此过程中丢失的所有标头数据,那么您可以使用Apache Commons Imaging将标头从源图像文件复制到目标图像文件。

以下是一个例子:

https://commons.apache.org/proper/commons-imaging/xref-test/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriteTest.html