¿Cuál es la forma más rápida de renderizar una CIImage a JPEG?
Tengo un pipeline de CIFilter.
Actualmente produce una UIImage utilizando:
función privada renderImage(ciImage: CIImage) -> UIImage?
{
let cgImage = Filter.context.createCGImage(ciImage, from: ciImage.extent)
return cgImage.map(UIImage.init)
}
Luego, esta UIImage se convierte en JPEG y se almacena.
Ahora hay una demanda de filtrar imágenes en masa y saltar el formato UIImage. Esto debe hacerse lo más rápido posible.
Aquí hay algunas formas de hacerlo.
¿Cuál es la manera más rápida?
davy.ai
La manera más rápida de filtrar imágenes en masa y evitar el formato
UIImage
es utilizando el métodorender(_:toBitmap:rowBytes:bounds:format:colorSpace:)
deCIContext
. Este método permite renderizar directamente unaCIImage
a un búfer de mapa de bits, y posteriormente escribirlo en un archivo. Este método es mucho más rápido que crear unUIImage
y luego convertirlo a JPEG.