2013-02-13 3 views
0

J'ai un UIImage résultant d'une fonction. C'est quelque chose comme ce qui suit.Distorsion d'UIImage en parallélogramme

image1.image = [self reflectedImage:img]; 

où image1 est un contrôle UIImage. Avant de le brancher sur l'image1, je veux le distordre vers la droite ou vers la gauche un peu dans un parallélogramme comme montré ci-dessous. Je veux juste déplacer les points c et d.

enter image description here

J'ai lu plusieurs dizaines d'articles ici et là. Je ne suis pas sûr si je peux le faire avec CGAffineTransformMake. This web page suggère que je pourrais. Malheureusement, il n'y a aucun exemple de projet pour voir comment cela fonctionne. Malheureusement, je n'ai pas trouvé un seul site Web qui me montre comment déformer une image rectangle simple en un parallélogramme. Alors, quelle est la façon la plus simple de le faire? Ai-je besoin de créer une couche pour pouvoir utiliser CATransform3D?

Nous vous remercions de votre aide.

Répondre

0

Ce que vous avez à faire est de donner à votre UIImageView une certaine perspective. Par défaut, une transformation de calques n'a pas de perspective, vous devez donc également configurer ceci: transform.m34 = 1.0/-2000;

Modifiez également le anchorpoint de votre vue pour qu'il pivote le long du bord supérieur de la vue. Pour vous, il devient (0,0.5).

enter image description here

La perspective lui donne ce regard parallélogramme comme si la vue a la profondeur (aussi appelé son 2.5D comme pur l'animation 3D, son pseudo 3D). Réglez le point d'ancrage de sorte qu'il tourne le long de ce bord et enfin lui donner un angle. c'est-à-dire tourner de combien?

// Rotate by 30 degrees 
CGAffineTransform rotationTransform = CGAffineTransformIdentity; 
rotationTransform = CGAffineTransformRotate(rotationTransform, DegreesToRadians(30)); 
swingView.transform = rotationTransform; 

tout cela vous donnera ce que vous voulez ...

Questions connexes