                                 
                                 var bitPattern: UInt64 = 0
                                 for i in 0..<8 {
-                                    bitPattern = (bitPattern << 8) | UInt64(read_channel(source + _bitsOffset >> 3, _bitsOffset & 7, i))
+                                    bitPattern = (bitPattern << 8) | UInt64(read_channel(source + _bitsOffset >> 3, _bitsOffset & 7, i, 8))
                                 }
                                 
                                 _d = bitPattern

        let bytesPerPixel = bitmap.bitsPerPixel >> 3
        let bytesPerChannel = channel.bitRange.count >> 3
        let channelBytesOffset = channel.bitRange.lowerBound >> 3
        let channelShift = channel.bitRange.lowerBound & 7
        
        let _slices: LazySliceSequence = channel.bitRange.lazy.slice(by: 8)
        

                        
                        var bitPattern: T = 0
                        for (i, slice) in _slices.enumerated() {
                            var byte = read_channel(source + _bitsOffset >> 3, _bitsOffset & 7, i, slice.count)
                            if slice.count != 8 {
                                byte >>= 8 - slice.count
                            }
