Stockage de pixels avec la sérialisation

Résolu
DeadEye0112 Messages postés 28 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 11 septembre 2007 - 29 août 2007 à 17:24
DeadEye0112 Messages postés 28 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 11 septembre 2007 - 30 août 2007 à 17:02
Bonjour,


Je vous expose mon problème.

Je dois stocker des pixels (en l'occurence ceux qui sont coloriés sur
une pictureBox mais là n'est pas la question) mais ces pixels doivent
être associés à une date. Dans ce cas là, la structure que j'ai faite
est :

public class PixelStorage

{

private int _x;

private int _y;

private DateTime _date;


[accesseurs]

[méthodes]

}


Le problème qui se pose c'est que lors de la sérialisation, je me retrouve pour chaque pixel avec un paté de ce genre :



<Date>2007-08-29T16:05:31.9372257+02:00</Date>

<X>187</X>

<Y>175</Y>




Ce qui fait quand même assez lourd pour stocker UN pixel \: J'ai essayé
de le stocker sous la forme de Dictionary> mais apparement la déserialisation n'aime pas les
List<List<object>> :S


Si quelqu'un a une solution à me proposer, je suis prenant (= Merci d'avance.

Bonne journée.

5 réponses

DeadEye0112 Messages postés 28 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 11 septembre 2007 1
30 août 2007 à 17:02
Bonjour à tous,
La technique que j'ai retenue est donc un stockage de ce type là :

  123;547;549;633240852172369192

Avec X la ligne, Y1 le point de départ, Y2 le point de fin et la date... DOnc un stockage en lignes...C'est la solution qui m'a parue la plus légère et qui passe à la sérialisation. J'ai essayé la sérialisation binaire et bizarrement ca ne prends pas énormement moins de place que ca.
En tout cas merci à tous :D
3
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
29 août 2007 à 19:50
Salut, tu as utilisé la serialisation XML essayes de serialiser en binaire avec la classe BinaryFormatter.
0
DeadEye0112 Messages postés 28 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 11 septembre 2007 1
30 août 2007 à 10:26
Bonjour,
J'ai essayé de sérialiser avec BinaryFormatter mais j'ai une exception comme quoi ma classe n'est pas sérialisable alors que XmlSerializer réussit à la sérialiser.

Voici mon code :
BinaryFormatter format = new BinaryFormatter();
System.IO.MemoryStream mStr = new System.IO.MemoryStream();
format.Serialize(mStr, structurePatientToSerialize);
Stream stream = File.Create("test.txt");
mStr.WriteTo(stream);
mStr.Close();

L'exception est SerializationException "Le type 'BusinessLayerSAPHO.Patient.Patient' dans l'assembly 'BusinessLayerSAPHO, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' n'est pas marqué comme sérialisable."

Aussi, (je sais ca commence à faire lourd et je m'en execuse) je souhaiterais aussi que les données soient cryptées mais j'ai du mal à voir comment crypter du binaire avec RijndaelManaged. Ou alors dans ce cas là, existe-t-il d'autres algorythmes de cryptage qui pourraient crypter des byte[] ?

Merci d'avance et désolé si les questions semblent bêtes \:
0
DeadEye0112 Messages postés 28 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 11 septembre 2007 1
30 août 2007 à 10:31
Hum... Je n'ai pas trouvé de bouton "Editer" donc désolé pour le double post.
Je viens de regarder pour Rijndael et en fait il fait très bien l'encryptage en byte[] c'est juste que mes méthodes le faisaient à partir de string (= A priori cette partie là est réglée ^_^

Cependant il reste toujours le problème du BinaryFormatter qui ne réussit pas à sérialiser ma classe \:
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
30 août 2007 à 10:38
Si tu peux tagger ta classe "Patient" comme étant sérializable (en rajoutant l'attribut [Serializable] au dessus de la classe), ça devrait passer (cela dit c'est étonnant que XmlSerializer y arrive sans avoir à faire la même chose...)

(par contre si tu fait ca, vérifie que tout les membres publics de ta classes doivent être sérialisés. Si ce n'est pas le cas, rajoute un tag [NonSerialized] sur chaque propriété/variable que tu ne veux pas persister)

<hr size="2" width="100%" />
Working as designed
www.nikoui.fr
0
Rejoignez-nous