最近在编写一个鬼怪相机的程序。基本思路是通过摄像头捕获视频图像,然后加载一个准备好的鬼怪图片,将此图片进行随机缩放旋转平移后与视频图像合成,最后显示在屏幕上。当用户点击拍照按钮时,就将当前的合成图像存入照片库。
准备好的鬼怪图片:
下面是核心的图像合成代码:
func makeGhostWithCIImage(inputImage: CIImage) -> CIImage {
let image = CIImage(contentsOfURL: NSBundle.mainBundle().URLForResource("ghost", withExtension: "png")!)!
//随机缩放鬼怪图
let filter = CIFilter(name: "CILanczosScaleTransform")!
filter.setValue(image, forKey: "inputImage")
let scale