将 CIImage 渲染为 JPEG 的最快方法?
Fastest way to render CIImage to JPEG?
我有一个 CIFilter
管道。
它目前输出 UIImage
使用:
private func renderImage(ciImage: CIImage) -> UIImage?
{
let cgImage = Filter.context.createCGImage(ciImage, from: ciImage.extent)
return cgImage.map(UIImage.init)
}
此 UIImage
稍后转换为 JPEG 并存储。
现在有批量过滤图像并跳过 UIImage
格式的需求。这需要尽快完成。
有几种方法可以做到这一点。
哪种方式最快?
您也可以使用 CIContext
来做到这一点:
let colorSpace = CGColorSpace(name: CGColorSpace.sRGB)!
// if you need the JPEG data
let data = Filter.context.jpegRepresentation(of: ciImage, colorSpace: colorSpace)
// or if you want to write to file directly
try Filter.context.writeJPEGRepresentation(of: ciImage, to: url, colorSpace: colorSpace)
我有一个 CIFilter
管道。
它目前输出 UIImage
使用:
private func renderImage(ciImage: CIImage) -> UIImage?
{
let cgImage = Filter.context.createCGImage(ciImage, from: ciImage.extent)
return cgImage.map(UIImage.init)
}
此 UIImage
稍后转换为 JPEG 并存储。
现在有批量过滤图像并跳过 UIImage
格式的需求。这需要尽快完成。
哪种方式最快?
您也可以使用 CIContext
来做到这一点:
let colorSpace = CGColorSpace(name: CGColorSpace.sRGB)!
// if you need the JPEG data
let data = Filter.context.jpegRepresentation(of: ciImage, colorSpace: colorSpace)
// or if you want to write to file directly
try Filter.context.writeJPEGRepresentation(of: ciImage, to: url, colorSpace: colorSpace)