JAI保存字节[]到.tiff文件



我试图在Java高级成像API的帮助下将一个字节[]的原始图像数据保存到硬盘上的。tiff文件。网上有一些小的例子,但他们没有真正帮助我,因为他们不符合我的确切问题。

我已经设法将数据从byte[]保存到.raw,并且可以成功地查看结果,因此源实际上包含一些数据。有问题的方法是可执行的,没有任何例外,但我得到的是一个黑色的图像,每当我用Windows XP ImageViewer查看它。

这是我的方法

public void saveTif(byte[] imgData) {
    BufferedImage bufferedImage = new BufferedImage( 1280, 1024, BufferedImage.TYPE_BYTE_GRAY );
    bufferedImage.createGraphics().drawBytes(imgData, 0, 1280*1024, 0, 0);
    TIFFEncodeParam params = new TIFFEncodeParam();
    params.setCompression( TIFFEncodeParam.COMPRESSION_NONE );
    String filenametiff = path + File.separatorChar + new SimpleDateFormat("dd_MM_yyyy_HH_mm_ss'.tiff'").format(new Date());
    JAI.create("filestore", bufferedImage, filenametiff, "TIFF", params);
}

Graphics.drawBytes()用于在图像上绘制文本(这不是很好,因为它使用byte[],而不是char[]或String,因此不支持字符集)。

Graphics.drawBytes()不能用于绘制原始像素。

为了得到你的图像的正确表示,你应该从你的像素数据中创建一个新的BufferedImage,或者创建一个匹配的图像并将数据设置在它上面。请看RasterDataBuffer

最新更新