现在解决了。 参见代码。现在可以使用了!
最初的问题是:
我需要将以byte []数组接收的图像存储到fits文件中。我正在使用Java 8和fits.jar lib(nom.tam.fits)。
以下代码似乎在一开始就可以工作,但是当我在ds9中打开fits文件时,它显示的是窄带而不是图像。 在以下代码中,数据是图像的byte []数组 (每个像素一个字节)
Fits f = new Fits();
int[] uBytes = new int[imageData.length];//the byte[] with the pixels
for (int i = 0; i < data.length; i+=1) {
uBytes[i] = (int) (imageData[i] & 0xff);
}
int dims[] = new int[]{imageSize_x, imageSize_y};
int [][] data = (int[][]) ArrayFuncs.curl(uBytes,dims);
BasicHDU h= Fits.makeHDU(data);
f.addHDU(h);
OutputStream os = new FileOutputStream("testImage.fits");
BufferedDataOutputStream s= new
BufferedDataOutputStream(os);
f.write(s);
f.close();
我必须承认我有点傻,因为在尝试使用JavaFX显示图像时,我已经设法解决了相同的问题 JavaFX. Displaying an image from byte[]