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

Silverlight Discussion :

Image décalé lors de la réception en TCP (rectangle.Fill)


Sujet :

Silverlight

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 24
    Par défaut Image décalé lors de la réception en TCP (rectangle.Fill)
    Bonjour,

    Je vous sollicite pour un problème que je rencontre lors de l'envoie d'une image par TCP.
    L'image en question est transmise depuis une application Silverlight, elle transite sur un serveur développé en C# chargé de router le flux TCP, et elle arrive enfin sur un deuxième client Silvelright mais cette fois complètement décalé. C'est à dire que lors de son import sur le rectangle (avec rectangle.Fill), une partie de l'image se décale sur la droite. Et ceci de façon aléatoire : parfois le quart de l'image, parfois la moitié ...
    J'ai fait une capture d'écran pour mieux vous décrire le problème.
    Vous remarquerez également un léger décalage en hauteur.
    (si l'image ne passe pas ici, cf pièces jointes)


    Pour la préparation de l'envoi j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WriteableBitmap monImage = new WriteableBitmap(rectangleEnvoi, null);
    Et j'utilise également la fonction ToByteArray pour la convertir avant l'envoi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ToByteArray(monImage);
     
    public static byte[] ToByteArray(this WriteableBitmap bmp)
    {
       int[] p = bmp.Pixels;
       int len = p.Length * 4;
       byte[] result = new byte[len]; // ARGB
       Buffer.BlockCopy(p, 0, result, 0, len);
       return result;
    }
    Pour la réception :
    J'ai un buffer en entrée que je converti en WriteableBitmap avec la fonction FromByteArray.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    WriteableBitmap monImage = new WriteableBitmap(160,160);
    public static void FromByteArray(this WriteableBitmap bmp, byte[] buffer)
    {
       Buffer.BlockCopy(buffer, 0, bmp.Pixels, 0, buffer.Length);
    }
    Ensuite je crait mon ImageBrush
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ImageBrush monBrush = new ImageBrush();
    monBrush.ImageSource = monImage ;
    monRectangle.Fill = monBrush ;
    Je tiens à préciser que les 2 rectangles sont de la même largeur*longueur.
    Une idée ? Merci par avance pour vos réponses.
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur connect() lors de la 2eme connection TCP
    Par innosang dans le forum Développement
    Réponses: 2
    Dernier message: 15/01/2007, 17h38
  2. Erreur connect() lors de la 2eme connection TCP
    Par innosang dans le forum Réseau
    Réponses: 1
    Dernier message: 29/12/2006, 20h49
  3. Réponses: 1
    Dernier message: 13/12/2006, 00h40
  4. [Image] scintillement lors déplacement sur autre composant
    Par lilou77 dans le forum Interfaces Graphiques en Java
    Réponses: 21
    Dernier message: 07/12/2005, 09h27
  5. Les images clignotes lors du Mouse over
    Par The Bat ! dans le forum C++Builder
    Réponses: 4
    Dernier message: 30/05/2005, 10h37

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