vrruiz / xisfits

Convert images from XISF to FITS
MIT License
8 stars 0 forks source link

Trucanted images #21

Closed vrruiz closed 4 years ago

vrruiz commented 4 years ago

Before August changes, read size and write size was the same.

[INFO  xisfits::xisfreader] Location length: 260100
[INFO  xisfits::xisfreader] Location length (260100) == channel size * channels (260100)
[INFO  xisfits::xisfreader] Read XISF > Data correctly read: 260100
...
[INFO  xisfits::fitswriter] FITS write > Write image data > Bytes total: 260100

After August changes, read size and write size are different.

[INFO  xisfits::xisfreader] Location length: 260100
[INFO  xisfits::xisfreader] Location length (260100) == channel_size * channel_count (260100)
[INFO  xisfits::xisfreader] Compression:   0
[INFO  xisfits::xisfreader] Read XISF > Data uncompressed.
[INFO  xisfits::xisfreader] Read XISF > File correctly seek: 4096
[INFO  xisfits::xisfreader] Read XISF > Data correctly read: 260100
...
[INFO  xisfits::fitswriter] FITS write > Write image data: 65024
[INFO  xisfits::fitswriter] FITS write > Write image data > Bytes total: 65024

Converted images are truncated, although tests are passing.

vrruiz commented 4 years ago

After debugging, found that problem lies at xisfreader.rs:

            let channel_count = xisf_header.geometry().channel_count();
            let chunks_iter = image_data
                .chunks_exact(xisf_header.geometry().channel_size())
                .take(channel_count);

xisf_header.geometry().channel_size() must be xisf_header.channel_size(). Will send the patch tomorrow.