         
         for bitmap in bitmaps {
             for (channel_idx, channel) in bitmap.channels.enumerated() {
-                
+                switch (bitmap.bitsPerPixel % 8, bitmap.endianness, channel.bitRange.lowerBound % 8, channel.bitRange.count, channel.format) {
+                case (0, .big, 0, 8, .unsigned): image._read_aligned_channel(bitmap, channel_idx, is_opaque, UInt8.self, Double.self)
+                case (0, .big, 0, 8, .signed): image._read_aligned_channel(bitmap, channel_idx, is_opaque, Int8.self, Double.self)
+                case (0, .big, 0, 16, .unsigned): image._read_aligned_channel(bitmap, channel_idx, is_opaque, UInt16.self, Double.self)
+                case (0, .big, 0, 16, .signed): image._read_aligned_channel(bitmap, channel_idx, is_opaque, Int16.self, Double.self)
+                case (0, .big, 0, 32, .unsigned): image._read_aligned_channel(bitmap, channel_idx, is_opaque, UInt32.self, Double.self)
+                case (0, .big, 0, 32, .signed): image._read_aligned_channel(bitmap, channel_idx, is_opaque, Int32.self, Double.self)
+                case (0, .big, 0, 32, .float): image._read_aligned_channel(bitmap, channel_idx, is_opaque, Float.self, Double.self)
+                case (0, .big, 0, 64, .unsigned): image._read_aligned_channel(bitmap, channel_idx, is_opaque, UInt64.self, Double.self)
+                case (0, .big, 0, 64, .signed): image._read_aligned_channel(bitmap, channel_idx, is_opaque, Int64.self, Double.self)
+                case (0, .big, 0, 64, .float): image._read_aligned_channel(bitmap, channel_idx, is_opaque, Double.self, Double.self)
+                case (_, _, _, _, .unsigned): image._read_unsigned_channel(bitmap, channel_idx, is_opaque, Double.self)
+                case (_, _, _, _, .signed): image._read_signed_channel(bitmap, channel_idx, is_opaque, Double.self)
+                default: break
+                }
             }
         }
         

    }
}

extension ColorSpace {
    
    @inlinable

                return image
            }
            
        default: break
        }
        
