Bir görüntünün renk boşluğu bilgi değerlerini yinelemek ve yazdırmak için görüntü piksellerini grafik bağlamına çizmeye çalışıyorum. Tüm ham piksel değerlerini arabellemeyi başardım. Ama benim girişimleri CGImageCreate kullanarak bitmap görüntü çizme, aşağıdaki hata, aynı zamanda screenshot attached ile çarptı. Bu benim yazım kodum.CGImageCreate hızlı bir şekilde hata veriyor
func createRGBAPixel(inImage: CGImageRef) -> CGContextRef {
//Image width, height
let pixelWidth = CGImageGetWidth(inImage)
let pixelHeight = CGImageGetHeight(inImage)
//Declaring number of bytes
let bytesPerRow = Int(pixelWidth) * 4
let byteCount = bytesPerRow * Int(pixelHeight)
//RGB color space
let colorSpace = CGColorSpaceCreateDeviceRGB()
//Allocating image data
let mapData = malloc(byteCount)
let mapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.PremultipliedFirst.rawValue)
//Create bitmap context
let context = CGBitmapContextCreate(mapData, pixelWidth, pixelHeight, Int(8), Int(bytesPerRow), colorSpace, mapInfo.rawValue)
let imageRef = CGBitmapContextCreateImage(context)
CGContextDrawImage(context, CGRectMake(0, 0, pixelWidth, pixelHeight), imageRef)
let data = CGDataProviderCopyData(CGImageGetDataProvider(imageRef)) as! NSData
let pixels = UnsafePointer<UInt8>(data.bytes)
var newPixelsArray = [UInt8](count: byteCount, repeatedValue: 0)
let provider = CGDataProviderCreateWithData(nil , &newPixelsArray, data.length, nil)
let newImageRef = CGImageCreate(pixelWidth, pixelHeight, CGImageGetBitsPerComponent(imageRef), CGImageGetBitsPerPixel(imageRef), bytesPerRow, colorSpace, mapInfo, provider, nil, false, kCGRenderingIntentDefault)
return context!
CGImageCreate "çözülmemiş bir tanımlayıcı" diyerek "kCGRenderingIntentDefault" de hata veriyor. CoreGraphics'i de ithal ettim, bu yerde herhangi bir değeri kabul etmiyor. Ne önerilebilir?
LütfenYardım edin. Çünkü Swift SDK böyle sıralamaların ne yaptığının
Ben CGFloat (değişkenler) ile tip döküm tarafından CGContextDrawImage düzeltmek başarmış. Ama şimdi CGImageCreate için KCGRenderingIntent değerleri zor zaman veriyor. –
Swift'de .RenderingIntentDefault olması gerekmiyor mu? –
CGColorRenderingIntent.RenderingIntentDefault kullanımı yardımcı oldu. Harika. Teşekkür ederim. Glenn Howes, bunu cevap olarak gönderebilsin diye kabul edebilir miyim? –