public static IpcImageFits LoadFromFitsDataSingleChannel(FitsData fitsData, int channel)
        {
            var ipcImage = new IpcImageFits(fitsData, channel);

            fitsData.CopyImageSingleChannel(ipcImage.DataPtr, channel);
            return(ipcImage);
        }
        //TODO: Make public when interleave is implemented
        internal static IpcImageFits LoadFromFileInterleave(Uri uri)
        {
            var fitsData = new FitsData(uri);

            if (fitsData.Channels == 1)
            {
                return(LoadFromFileSingleChannel(uri, 0));
            }
            var ipcImage = new IpcImageFits(fitsData, -1);

            fitsData.CopyImageInterleave(ipcImage.DataPtr);
            return(ipcImage);
        }
        public static List <IpcImageFits> LoadFromFitsDataMultiChannel(FitsData fitsData)
        {
            var ipcImageList    = new List <IpcImageFits>();
            var ipcImagePtrList = new List <IntPtr>();

            for (var i = 0; i < fitsData.Channels; i++)
            {
                var ipcImage = new IpcImageFits(fitsData, i);
                fitsData.CopyImageSingleChannel(ipcImage.DataPtr, i);
                ipcImageList.Add(ipcImage);
            }
            return(ipcImageList);
        }