У меня есть черно-белое изображение с цветовым пространством, созданным CGColorSpaceCreateDeviceGray()
.Я хочу преобразовать это изображение в цветовое пространство RGB.Для этого я добавил расширение для CGContext следующим образом:
extension CGContext {
func convert(to colorSpace: CGColorSpace) -> CGContext {
let rowBytes = self.width * (colorSpace.numberOfComponents + 1)
let context = CGContext(data: nil,
width: width,
height: height,
bitsPerComponent: bitsPerComponent,
bytesPerRow: rowBytes,
space: colorSpace,
bitmapInfo:
CGImageAlphaInfo.premultipliedLast.rawValue)!
let rect = CGRect(x: 0, y: 0, width: self.width, height: self.height)
context.clear(rect)
context.draw(self.makeImage()!, in: rect)
return context
}
}
Это работает довольно хорошо, но кажется, что должен быть более оптимальный способ сделать это.Есть ли у вас какие-либо мнения по этому вопросу?