J'essaie de dessiner des pixels d'image dans un contexte graphique pour itérer et imprimer les valeurs d'informations d'espace colorimétrique d'une image. J'ai réussi à mettre en mémoire tampon toutes les valeurs de pixels brutes. Mais mes tentatives dessiner l'image bitmap en utilisant CGImageCreate ont frappé l'accroche avec l'erreur suivante, également screenshot attached. C'est mon code écrit.CGImageCreate donne une erreur dans swift
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 donne erreur à "kCGRenderingIntentDefault" disant "identifiant non résolu". J'ai aussi importé coreGraphics, il n'accepte aucune valeur à cet endroit. Que peut-on suggérer?
Aidez-nous s'il vous plaît.
J'ai réussi à corriger CGContextDrawImage par coulée de type avec CGFloat (variables). Mais maintenant les valeurs KCGRenderingIntent pour CGImageCreate donnent du temps. –
Cela ne devrait-il pas être .RenderingIntentDefault dans Swift? –
L'aide de CGColorRenderingIntent.RenderingIntentDefault a aidé. Génial. Je vous remercie. Glenn Howes, vous pouvez le poster comme une réponse pour que je puisse l'accepter? –