Expanding the view controller's interface
All of the new source code will go in ViewController.m
. Open the file. After the import statements, let's define the following enumeration to identify the available blending modes:
enum BlendMode { None, Average, Multiply, Screen, HUD };
Now, we need to add several new variables and methods to the private interface of our ViewController
class. To provide callbacks to a standard image picker, our view controller must implement two protocols, UIImagePickerControllerDelegate
and UINavigationControllerDelegate
. We also need two more cv::Mat
variables to store the selected foreground image in its original format and a converted format that is appropriate for the current background and blending mode. The blending mode is a variable, too. Note the highlighted changes in this block of code:
@interface ViewController () <CvVideoCameraDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate> { cv::Mat originalStillMat...