Commit f723e33c349ccd541fbbed4f1be691e106bfd965
1 parent
09c33cf1
Make sure that the FITS image that is written to disk has the correct size.
Showing
2 changed files
with
10 additions
and
2 deletions
src/fits/GFitsCfitsio.hpp
| 1 | 1 | /*************************************************************************** |
| 2 | 2 | * GFitsCfitsio.hpp - CFITSIO interface header * |
| 3 | 3 | * ----------------------------------------------------------------------- * |
| 4 | - * copyright (C) 2008-2012 by Juergen Knoedlseder * | |
| 4 | + * copyright (C) 2008-2016 by Juergen Knoedlseder * | |
| 5 | 5 | * ----------------------------------------------------------------------- * |
| 6 | 6 | * * |
| 7 | 7 | * This program is free software: you can redistribute it and/or modify * |
| ... | ... | @@ -91,6 +91,7 @@ |
| 91 | 91 | #define __ffphis(A, B, C) ffphis(A, B, C) |
| 92 | 92 | #define __ffpss(A, B, C, D, E, F) ffpss(A, B, C, D, E, F) |
| 93 | 93 | #define __ffprec(A, B, C) ffprec(A, B, C) |
| 94 | +#define __ffrsim(A, B, C, D, E) ffrsim(A, B, C, D, E) | |
| 94 | 95 | #define __ffsrow(A, B, C, D) ffsrow(A, B, C, D) |
| 95 | 96 | #define __ffthdu(A, B, C) ffthdu(A, B, C) |
| 96 | 97 | #define __ffuky(A, B, C, D, E, F) ffuky(A, B, C, D, E, F) |
| ... | ... | @@ -168,6 +169,7 @@ typedef fitsfile __fitsfile; |
| 168 | 169 | #define __ffphis(A, B, C) __dummy() |
| 169 | 170 | #define __ffpss(A, B, C, D, E, F) __dummy() |
| 170 | 171 | #define __ffprec(A, B, C) __dummy() |
| 172 | +#define __ffrsim(A, B, C, D, E) __dummy() | |
| 171 | 173 | #define __ffsrow(A, B, C, D) __dummy() |
| 172 | 174 | #define __ffthdu(A, B, C) __dummy() |
| 173 | 175 | #define __ffuky(A, B, C, D, E, F) __dummy() | ... | ... |
src/fits/GFitsImage.cpp
| 1 | 1 | /*************************************************************************** |
| 2 | 2 | * GFitsImage.cpp - Abstract FITS image base class * |
| 3 | 3 | * ----------------------------------------------------------------------- * |
| 4 | - * copyright (C) 2008-2013 by Juergen Knoedlseder * | |
| 4 | + * copyright (C) 2008-2016 by Juergen Knoedlseder * | |
| 5 | 5 | * ----------------------------------------------------------------------- * |
| 6 | 6 | * * |
| 7 | 7 | * This program is free software: you can redistribute it and/or modify * |
| ... | ... | @@ -775,6 +775,12 @@ void GFitsImage::save_image(int datatype, const void* pixels) |
| 775 | 775 | } |
| 776 | 776 | } |
| 777 | 777 | |
| 778 | + // Make sure that the image on disk has the right size by resizing it | |
| 779 | + status = __ffrsim(FPTR(m_fitsfile), m_bitpix, m_naxis, m_naxes, &status); | |
| 780 | + if (status != 0) { | |
| 781 | + throw GException::fits_error(G_SAVE_IMAGE, status); | |
| 782 | + } | |
| 783 | + | |
| 778 | 784 | // Save the image pixels (if there are some ...) |
| 779 | 785 | if (m_naxis > 0 && pixels != NULL) { |
| 780 | 786 | long* fpixel = new long[m_naxis]; | ... | ... |