I was just wondering if someone knows about some good library or tutorial on how to achieve a 2D distortion of a face taken from an image taken by the user.
I would
I have found an almost identical question here with an accepted answer.
Also, speaking about distorsion algorithms there is an algorithm used by GIMP called "liquid rescale". You can find it here and is written in C/C++ so you could integrate it in your iOS App (license permitting, I haven't checked that).
Here is another similar question as well.
Hope that this helps to get you started on this.
EDIT: Some examples (will post some code soon)
EDIT 2: I was looking for some code and I found some blog posts that explain the filtering algorithms used to implement the liquid rescale algorithm. Is not easy and I don't think in short time and with no prior knowledge on the subject I could do more than sharing this link. The author of the GIMP implementation appears to be called "Shai Avidan" (see this post). I suggest you might try to contact him or anyone else in the field (see wikipedia references on the subject). Sorry if I can't help more.
EDIT 3: I found a book with some JAVA code on "Principles of Digital Image Processing: Fundamental Techniques".
Also, this is a link to a Digital Image Processing course by Prof. Bernd Girod at Standford University. There are slides and tutorials.
Then I found some more results by googling the term "Principles of Digital Image Processing spring".
Anyway.. this was just to add some extra to the answer as I was thinking about it before.