如何将图像存储到拟合文件中

时间:2019-01-03 17:53:19

标签: java image fits

现在解决了。 参见代码。现在可以使用了!

最初的问题是:

我需要将以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[]

0 个答案:

没有答案