के बाद CGBitmapInfo अल्फा मुखौटा मैं सर्वर से डाउनलोड की जा रही छवियों को कैश करने के लिए इस जिथब रेपो https://github.com/Haneke/HanekeSwift से लाइब्रेरी का उपयोग कर रहा हूं। तेजी से 2.0 अपडेट करने के बाद सब कुछ गड़बड़ हो गया है।स्विफ्ट 2.0
bitmapInfo &= ~CGBitmapInfo.AlphaInfoMask
bitmapInfo |= CGBitmapInfo(rawValue: CGImageAlphaInfo.NoneSkipFirst.rawValue)
त्रुटि:
func hnk_decompressedImage() -> UIImage! {
let originalImageRef = self.CGImage
let originalBitmapInfo = CGImageGetBitmapInfo(originalImageRef)
let alphaInfo = CGImageGetAlphaInfo(originalImageRef)
// See: http://stackoverflow.com/questions/23723564/which-cgimagealphainfo-should-we-use
var bitmapInfo = originalBitmapInfo
switch (alphaInfo) {
case .None:
bitmapInfo &= ~CGBitmapInfo.AlphaInfoMask
bitmapInfo |= CGBitmapInfo(rawValue: CGImageAlphaInfo.NoneSkipFirst.rawValue)
case .PremultipliedFirst, .PremultipliedLast, .NoneSkipFirst, .NoneSkipLast:
break
case .Only, .Last, .First: // Unsupported
return self
}
let colorSpace = CGColorSpaceCreateDeviceRGB()
let pixelSize = CGSizeMake(self.size.width * self.scale, self.size.height * self.scale)
if let context = CGBitmapContextCreate(nil, Int(ceil(pixelSize.width)), Int(ceil(pixelSize.height)), CGImageGetBitsPerComponent(originalImageRef), 0, colorSpace, bitmapInfo) {
let imageRect = CGRectMake(0, 0, pixelSize.width, pixelSize.height)
UIGraphicsPushContext(context)
// Flip coordinate system. See: http://stackoverflow.com/questions/506622/cgcontextdrawimage-draws-image-upside-down-when-passed-uiimage-cgimage
CGContextTranslateCTM(context, 0, pixelSize.height)
CGContextScaleCTM(context, 1.0, -1.0)
// UIImage and drawInRect takes into account image orientation, unlike CGContextDrawImage.
self.drawInRect(imageRect)
UIGraphicsPopContext()
let decompressedImageRef = CGBitmapContextCreateImage(context)
let scale = UIScreen.mainScreen().scale
let image = UIImage(CGImage: decompressedImageRef, scale:scale, orientation:UIImageOrientation.Up)
return image
} else {
return self
}
}
विशेष रूप से इस कोड है कि त्रुटियों फेंक रहे हैं की पंक्तियां हैं:
मैं सब कुछ है, लेकिन इस समारोह को ठीक कर लिया है एकल ऑपरेटर '~' CGBitmapInfo प्रकार का कोई आपरेण्ड को
bitmapInfo |= CGBitmapInfo(rawValue: CGImageAlphaInfo.NoneSkipFirst.rawValue)
त्रुटि लागू नहीं किया जा सकता है: बाइनरी ऑपरेटर '| =' नहीं किया जा सकता प्रकार के 'CGBitmapInfo'
if let context = CGBitmapContextCreate(nil, Int(ceil(pixelSize.width)), Int(ceil(pixelSize.height)), CGImageGetBitsPerComponent(originalImageRef), 0, colorSpace, bitmapInfo)
त्रुटि एक संकार्य के लिए लागू: प्रकार की उम्मीद तर्क करने के लिए प्रकार का मान 'CGBitmapInfo' कनवर्ट नहीं कर सकता UInt32