IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Phone .NET Discussion :

[WP7][SL] Manipulation d'images


Sujet :

Windows Phone .NET

  1. #1
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut [WP7][SL] Manipulation d'images
    Hello,

    là je bloque...........

    j'ai un contrôle image dans une Grille. Dans ce contrôle image je place l'image sélectionné par l'utilisateur.

    Si cette image a une largeur supérieur à la largeur de l'écran en mode portrait je veux la tourner et la mettre en vertical.

    le problème c'est que les transformations rogne l'image en fait !

    dèc qu'on tourne l'image et qu'on fait une translation pour la ramener au bon endroit en fait l'image est rogner !

    donc si on la tourne de 90° (ce qu'il faut en fait) on se retrouve avec une image vide pour effectuer la translation !!!

    Comment faut il faire ?

    Merci
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Pas besoin de translation, il faut juste indiquer que la rotation se fait autour du centre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Image Source="..." RenderTransformOrigin="0.5, 0.5">
        <Image.RenderTransform>
            <RotateTransform Angle="90" />
        </Image.RenderTransform>
    </Image>

  3. #3
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Merci,

    mais si tu imagines une image qui fait 800x600.

    elle est positionné en 0,0 du contrôle Image qui lui fait 480x800 (Ecran en mode portrait).

    Avec la propriété Stretch à None l'image dépasse donc..... et son centre n'est pas dans l'écran. Et lorsque tu fait une transformation de rotation ton image se décale.......

    c'est là, le problème
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  4. #4
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Autre question,

    ces transformations se font sur le contrôle ou le Content du contrôle ?

    je m'exlique, dans le cas de mon contrôle Image, il a 480x800 et en mode portrait.

    si je fais une transformation de rotation par exemple, que se passe t il ?

    c'est contrôle Image qui tourne ou l'image qu'il contient ?
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  5. #5
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    C'est le contrôle.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  6. #6
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    mais si tu imagines une image qui fait 800x600.

    elle est positionné en 0,0 du contrôle Image qui lui fait 480x800 (Ecran en mode portrait).

    Avec la propriété Stretch à None l'image dépasse donc..... et son centre n'est pas dans l'écran. Et lorsque tu fait une transformation de rotation ton image se décale.......
    Avec le RenderTransformOrigin à "0.5, 0.5" comme l'a fait TomLev, il ne devrait pas y avoir de problème de centrage ou alors j'ai mal compris quelque chose.
    .
    Pas de question technique en MP, merci.
    .
    Un emulator Gameboy Color pour Windows Phone ?
    c'est moi qui l'ai fait

  7. #7
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Je suis d'accord....

    Mais si ton RenderOrigin est à 0.5 0.5 (je suppose que c'est le centre de l'image, lorsque tu tournes l'image certaines parties se retrouvent en dehors de l'écran !
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  8. #8
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    En fait cela vient bien de ton RenderTransformOrigin.

    Pour bien comprendre le RenderTransformOrigin, il faut se representer ton image comme si elle faisait une taille de 1x1 cm. si tu veux la faire tourner à partir du centre, tu prendre le point situé à (0.5,0.5). si tu veux la faire tourner en haut à gauche tu prend le point (0,0), en bas à droite (1,1), etc...

    Si ton écran est plus petit que ton image, il faut trouver le bon ratio.
    Ici une rotation centré par rapport à l'écran selon la taille de ton image.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double renderTransformOriginX = (longueur de l'écran / longueur de l'image) / 2;
    double renderTransformOriginY = (largeur de l'écran / largeur de l'image) / 2;
    .
    Pas de question technique en MP, merci.
    .
    Un emulator Gameboy Color pour Windows Phone ?
    c'est moi qui l'ai fait

  9. #9
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Ok,

    c'est plus clair là.

    Je suppose que ce raisonnement s'applique également à une translation ?

    Merci
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  10. #10
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    A toutes transformations (de RenderTransform)
    .
    Pas de question technique en MP, merci.
    .
    Un emulator Gameboy Color pour Windows Phone ?
    c'est moi qui l'ai fait

  11. #11
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Ok,

    Donc si j'ai bien compris, dans le cas d'une translation obtenu par le glissement du doigt sur l'écran, il est préférable de redéfinir le RenderOrigin systématiquement au point de contact du doigt?

    Merci
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  12. #12
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    Dans l'idée oui ou. Tu peux utiliser CenterX & CenterY d'un CompositeTransform ou d'un TranslateTransform.

    Si tu veux faire de la Rotation, Scale sur une Image en utilsant les doigts tu peux regarder l'evenement Pinch du GestureListener:

    http://www.pitorque.de/MisterGoodcat...re-Sample.aspx
    .
    Pas de question technique en MP, merci.
    .
    Un emulator Gameboy Color pour Windows Phone ?
    c'est moi qui l'ai fait

Discussions similaires

  1. Manipulation d'images
    Par Tragnee dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 08/04/2006, 17h59
  2. [VBA-E]Manipuler des images
    Par nils.angot dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/02/2006, 10h59
  3. [SWING] Manipulation d'images
    Par TylerKnoxx dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 13/09/2005, 22h33
  4. [SDL] manipulation d'image
    Par zdra dans le forum OpenGL
    Réponses: 4
    Dernier message: 28/02/2004, 16h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo