Method 3
This is a much newer technique that is data driven. A neural network model is trained on images in general so that features can be extracted from the underlying image. Features are encoded grouping of pixels that match an abstract concept of some object that has been learned from the statistical model. For example, with enough training data, a model of images could identify the concept of a person, hand, or stop sign, from pixel values in an image because it can learn the invariant characteristics of those objects (the "big picture" so to speak). Features are extracted from the photo you upload as well as the style image that is being targeted. The convolutional network essentially applies a series of image convolution filters, much like Photoshop filters, and tunes the parameters of each filter automatically to automatically try to match the features extracted from the style image.