Manipulation graphique (CGRectMake) d'une photo (.png) en vue modale


Bonjour à  tous,

En espérant être le + clair, voici mon souci :

 

Dans ma vue principale, via un controleur Image View, je charge une photo au format .png d'une définition de 2448 x 3264 pixels ... je la positionne de telle sorte qu'elle occupe l'intégralité de l'écran : X=0, Y=0, Width = 320 et Height = 460. Après des traitements graphiques (CGRectMake), un point précis sur cette photo m'intéresse et je souhaite - via une vue modale - zoomer avec un CGRectMake  sur ce point pour y effectuer d'autres traitements graphiques. 

 

Or, après avoir générer ma vue modale, j'ai un problème : les limites du référentiel X/Y de l'image dans ma vue modale n'est plus de 320x460 ... mais celui de la photo, à  savoir 2448 x 3264 ... et mes CGRectMake font n'importe quoi ....pas du tout là  où je voulais ......

 

Pour reprendre mon exemple, mon point qui était en X=250 et Y=272 dans ma vue principale devient  X=2019 et Y=1774 dans ma vue modale ... comment alors charger cette photo dans ma vue modale pour que son référentiel X/Y reste identique à  celui de ma vue principale, à  savoir 320x460 ... ?


 




Merci - 1000 fois mercis - pour votre coup de main ..

OldNick
Mots clés:

Réponses

  • AliGatorAliGator Membre, Modérateur
    Applique la CGAffineTransform qui fait la mise à  l'échelle à  ton CGRect pour travailler dans le même espace et référentiel.
  • Alf1996Alf1996 Membre
    juillet 2013 modifié #3
    Petit détail...mais qui a son importance !!! à‰vite les "height=320" et "width=460" et plus généralement tous les "magic numbers" ;)
  • Merci AliGator et Alf1996 pour votre précieuse aide et précieux conseils ......le CGAffineTransform n'a pas l'air très simple à  manipuler ... je fais des essais et vous tiens au courant ! Bonne journée à  vous 2 ! OldNick


  • Je n'ai pas compris que OldNick voulait modifier l'échelle de l'image.


    J'ai plutôt compris qu'il voulait modifier le système de coordonnées de sa vue.


  • AliGatorAliGator Membre, Modérateur


    Je n'ai pas compris que OldNick voulait modifier l'échelle de l'image.

    J'ai plutôt compris qu'il voulait modifier le système de coordonnées de sa vue.

    oui c'est ce que j'ai compris aussi. D'où le CGAffineTransform pour appliquer la matrice de conversion d'un espace de coordonnées vers l'autre.
  • Hello à  tous - hello AliGator , Alf1996 et jpimbert,


    Merci pour vos conseils ... j'y suis arrivé .... j'ai bien maintenant une vue modale constituée de subviews dont le système de coordonnées est commun .... mais j'ai maintenant un autre souci ... comment manipuler tous ces UIImageView dans ma vue modale ?


     


    Pour info :


    ma vue modale est en fait un "zoom" x4 de ma vue principale composée de trois CGImage - eux-même issus de trois image .png de tailles différentes. Dans ma vue principale ViewController, j'ai un bouton "Zoom" qui déclenche la fabrication de ma vue modale  (j'ai donc un ViewController.h, .m et .xib) ... et mes UIImageView sont passés 

  • oupsssss .... j'ai cliquer sur "Ajouter" par erreur ... je continue ....


    donc mes UIImageView sont passées à  ma vue modale via des subviews : [maVueModale.view addSubview:monImage]


    Je souhaite manipuler (touchesMoved) ces UIIMageView dans mon controleur de vue modale VueModaleViewController pour lequel j'ai VueModaleViewController.h, .m et .xib) ....et là  je ne sais pas comment faire .....je sais le faire dans ma vue principale .... mais pour des raisons de précision, je veux le faire dans ma vue modale "zoom" et je n'y arrive pas .... merci par avance pour votre précieux coup de main .....

  • Bonjour,


     


    Je n'ai pas tout compris mais il est midi passé.


    Peut-être que quelques captures d'écran faciliteraient la compréhension ?



  • oupsssss .... j'ai cliquer sur "Ajouter" par erreur ... je continue ....




    Tu peux éditer tes messages ;)


     


    Sinon, ça s'rait pas mal de déplacer ce topic dans une section plus appropriée ?

  • Je n'ai pas été très clair je le reconnais volontiers .... je reformule ma demande :


     


    Dans mon contrôleur de vue modale, je construis ma vue dans - (void)viewDidLoad en construisant mon UIImageView *zoom et en l'affichant via [self.view addSubview:zoom];


     


    Toujours dans mon contrôleur de vue modale, je souhaite pouvoir déplacer ce "zoom" grâce à  -(void) touchesMoved en déplaçant le centre de "zoom" .... mais dans  -(void) touchesMoved,  impossible d'utiliser zoom.center.x et zoom.center.y (erreur Use of undeclared identifier") .......


     


    Voilà  mon problème .... comment utiliser cette subview "zoom" avec un -(void) touchesMoved au sein de ma vue modale ...


     


    En espérant avoir été + clair .... merci 1000 fois par avance pour votre coup de main ....


     


    --> Larme : je veux bien déplacer ce topic .....comment fait-on ?


Connectez-vous ou Inscrivez-vous pour répondre.