mardi 3 mars 2015

C# Parameter is not Valid Exception

I am trying to get Avatar from google talk. I received packet from goole talk server like:



<presence from="xxxxxxxxxxxxx@http://ift.tt/1vYr31R" to="xxxxxxxxxx@http://ift.tt/17NUJ6v">
<show>away</show>
<caps:c ver="1.1" node="http://ift.tt/1vYr5Xj" xmlns:caps="http://ift.tt/wp76aO" />
<x xmlns="vcard-temp:x:update">
<photo>6373f2ccdf12ef06292ca2257dc0bdc9aa1040c2</photo>
</x>


I thought the hex vale of '<photo>' tag is the avatar (display image) of the contact. (Please correct me if I am wrong.)


I converted that value to byte[] and used following code to display the image.



pictureBox1.Image = Image.FromStream(new MemoryStream(byte_array));
// byte_array is byte[] converted from hex value.


It raises exception saying:



Parameter is not valid.



I am using the following function to covert from hex to byte[]:



private static byte[] HexString2Bytes(string hexString)
{
int bytesCount = (hexString.Length) / 2;
byte[] bytes = new byte[bytesCount];
for (int x = 0; x < bytesCount; ++x)
{
bytes[x] = Convert.ToByte(hexString.Substring(x * 2, 2), 16);
}

return bytes;
}


I tries many ways but same result.


I also tried to convert the hex value to uppercase, but no luck, same result.


I am using .net 3.5 on windows 8.1 machine.


Thanks


Aucun commentaire:

Enregistrer un commentaire