写真を撮影後生成したUIImageデータを各種フィルター処理により生成されたCIImageデータをそのまま
UIImageに戻した場合その後の画像処理においてエラーが発生する場合の対策。
下記は画像をシャープ処理をするフィルター処理後生成されたCIImageを下記のように一旦CGImageに
変換後さらにUIImageに戻すことによりエラーを回避できる。
func filter01(image: UIImage) -> UIImage?{
let ciImage:CIImage = CIImage(image:image)!
// カラーエフェクトを指定してCIFilterをインスタンス化.
let mySharpFilter = CIFilter(name:"CIUnsharpMask")
// イメージのセット.
let radius = 8
mySharpFilter!.setValue(ciImage, forKey: kCIInputImageKey)
mySharpFilter!.setValue(radius, forKey: "inputRadius")
mySharpFilter!.setValue(NSNumber(float: 1.0), forKey: "inputIntensity")
print("ok4")
// フィルターを通した画像をアウトプット.
//修正前let image2 = UIImage(CIImage: mySharpFilter!.outputImage!)
let context = CIContext()
let cgImage = context.createCGImage(mySharpFilter!.outputImage!,fromRect: mySharpFilter!.outputImage!.extent)
let image2 = UIImage(CGImage: cgImage)
return image2
}