2014-10-29 6 views
8

मुझे 'kCGImageAlphaPremultipliedLast' के लिए एक अनसुलझा पहचानकर्ता त्रुटि मिल रही है। स्विफ्ट इसे नहीं मिल सकता है। क्या यह स्विफ्ट में उपलब्ध है?स्विफ्ट ओपनजीएल अनसुलझा पहचानकर्ता kCGImageAlphaPremultipliedLast

var gc = CGBitmapContextCreate(&pixelData, width: width, height: height, bitsPerComponent: 8, bytesPerRow: width*4, imageCS, bitmapInfo: kCGImageAlphaPremultipliedLast); 

उत्तर

21

CGBitmapContextCreate() के अंतिम पैरामीटर एक struct

struct CGBitmapInfo : RawOptionSetType { 
    init(_ rawValue: UInt32) 
    init(rawValue: UInt32) 

    static var AlphaInfoMask: CGBitmapInfo { get } 
    static var FloatComponents: CGBitmapInfo { get } 
    // ... 
} 

जहां संभव हो "अल्फा की जानकारी" बिट्स एक गणन के रूप में अलग से परिभाषित कर रहे हैं के रूप में परिभाषित किया गया है enum को इसके अंतर्निहित UInt32 मान में परिवर्तित करना होगा और फिरबनाना होगाइसे से: स्विफ्ट 2 के लिए

let bitmapInfo = CGBitmapInfo(CGImageAlphaInfo.PremultipliedLast.rawValue) 
let gc = CGBitmapContextCreate(..., bitmapInfo) 

अद्यतन:CGBitmapInfo परिभाषा

public struct CGBitmapInfo : OptionSetType 

को बदल दिया है और इसके साथ

let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.PremultipliedLast.rawValue) 
+1

धन्यवाद प्रारंभ किया जा सकता है तुम सिर्फ मेरे समय का भार को बचाया ! – NJGUY

+0

@ मार्टिन आर ग्रेट धन्यवाद! – BurtK

1

ऐप्पल दस्तावेज CGImageAlphaInfo.PremultipliedLast सुझाता है।

enum CGImageAlphaInfo : UInt32 { 
    case None /* For example, RGB. */ 
    case PremultipliedLast /* For example, premultiplied RGBA */ 
    case PremultipliedFirst /* For example, premultiplied ARGB */ 
    // ... 
} 
इसलिए

आप:

https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGImage/index.html#//apple_ref/c/tdef/CGImageAlphaInfo

संबंधित मुद्दे