gpt4 book ai didi

java - JAI 将 byte[] 保存到 .tiff 文件

转载 作者:行者123 更新时间:2023-12-01 14:28:12 27 4
gpt4 key购买 nike

我正在尝试借助 Java 高级成像 API 将原始图像数据的 byte[] 保存到硬盘上的 .tiff 文件中。网上有一些小例子,但它们并没有真正帮助我,因为它们与我的确切问题不匹配。

我已经成功地将数据从 byte[] 保存到 .raw 中,并且可以成功查看结果,因此源实际上包含一些数据。该方法是可执行的,没有任何异常(exception),但每当我使用 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 类。

关于java - JAI 将 byte[] 保存到 .tiff 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17022253/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com