                                               bitsPerComponent: 8,
                                               bytesPerRow: Int(bytesPerRow),
                                               space: CGColorSpaceCreateDeviceRGB(),
-                                              bitmapInfo: bitmapInfo(imageRef: sourceImageRef).rawValue)
+                                              bitmapInfo: CGImageAlphaInfo.premultipliedLast.rawValue)
                 else { return self }
             
             // flip the output graphics context so that it aligns with the

                    }
                    
                    // read and write a tile sized portion of pixels from the input image to the output image.
                    destContext.draw(sourceImageRef, in: destTile)
                }
            }
            

    func decompress() -> UIImage {
        guard let imageRef = self.cgImage else { return self }
        
        let resolution = self.resolution()
        
        if resolution.width == 0 || resolution.height == 0 { return self }
        
        let sourceTotalPixels = resolution.width * resolution.height
        let sourceTotalMB = CGFloat(sourceTotalPixels) / Constant.pixelsPerMB
        
        if sourceTotalMB > Constant.destImageSizeMB {
            return self.downsizing()
        } else {
            UIGraphicsBeginImageContextWithOptions(resolution, false, self.scale)
            
            guard let context = UIGraphicsGetCurrentContext() else { return self }
            
