Tôi đang cố gắng vẽ các pixel của hình ảnh vào ngữ cảnh đồ họa để lặp lại và in các giá trị thông tin không gian màu của hình ảnh. Tôi đã quản lý để đệm tất cả các giá trị pixel thô. Nhưng những nỗ lực của tôi vẽ hình ảnh bitmap bằng CGImageCreate đã ảnh hưởng đến lỗi sau, cũng là screenshot attached. Đây là mã của tôi được viết.CGImageCreate đang đưa ra lỗi trong 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 cung cấp lỗi tại "kCGRenderingIntentDefault" nói "từ định danh chưa được giải quyết". Tôi cũng đã nhập đồ họa cốt lõi, nó không chấp nhận bất kỳ giá trị nào tại nơi này. Những gì có thể được đề xuất?
Vui lòng trợ giúp.
tôi đã quản lý để khắc phục CGContextDrawImage theo loại đúc với CGFloat (biến). Nhưng bây giờ giá trị KCGRenderingIntent cho CGImageCreate là cho thời gian khó khăn. –
Không được .RenderingIntentDefault in Swift? –
Sử dụng CGColorRenderingIntent.RenderingIntentDefault đã giúp. Tuyệt quá. Cảm ơn bạn. Glenn Howes, bạn có thể đăng nó như một câu trả lời để tôi có thể chấp nhận nó? –