2016-07-14 5 views
1

Ich entwickle eine Web-App, die ein Bild von einem JSON eines Azure-Experiments aufnehmen muss. Ich habe folgende Funktion.Azure: Entschlüsselung eines Strings in Base64 mit einem Bild

public static Image Base64ToImage(string base64String) 
{ 
    try 
    { 
     byte[] imageBytes = System.Text.Encoding.UTF8.GetBytes(base64String);//Convert.FromBase64String(base64String); 
     MemoryStream ms1 = new MemoryStream(imageBytes,0,imageBytes.Length); 
     ms1.Write(imageBytes, 0, imageBytes.Length); 
     Image NewImage = Image.FromStream(ms1, true); 
     NewImage.Save(@"C:\TESTOK.jpg"); 
     return NewImage; 
    } 
    catch (Exception ex) 
    { 
     string appo = ex.Message.ToString() + ex.InnerException.ToString(); 
     return null; 
    } 
} 

Er empfängt die Zeichenfolge, die vom Azure-Webservice erstellt wurde (ein kodiertes Bild). Wenn ich versuche, das Bild über die Funktion zu erstellen Image.FromStream(ms1, true); es eine Ausnahme gibt den Fehler erzeugt:

"Parameter is not valid".

Die Eingabezeichenfolge ist die folgende.

iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAAADFBMVEX9/v0AAAAAzQD////A95lXAAAABHRSTlP/////bShGeQAAC+xJREFUeJztnYl22yoUAIP1///cprYQm3bZRtOZ856NEFyWsZZgNfkZBM3Ptzsg70XBcBQMR8FwFAxHwXAUDEfBcLoRHEKoUq/NNBFe5Lv2NLOrSNLYTMnNfSgHmI1ktanD9CQ45Im4I7odpmkJ467dzewpUkpolNwjOBtgyIOvNHWYGwmOW0N1lF/ck6RPi43t6kQtuNHG9eO6qeAjB+/2nmxt7ArBQ34yIguOJ+JJ6Sv1PHdl0xILvXYXExhiyHhkpBPZKhIza8FD3D9UJbM+jKVamooBVvcWRyduBYDgcW9+bZtSIc9bLpJfVUOerutkfWjdOs0OsBD8tovOLQQPqZup/Di5w/SaprLMmSpzRaZeJUdmfCm7Vre+X/Aw87k4C0DwMDT0lDHKalWR53spOGY2T9d1H5LQKwOsBE9NXUpPglO5JwQX59p45syqDVXt1im6aCtuVqfoRuhYsj3AluBy4wr+E8HZgTh3kGcRW20NSaRrBbdtX8FdBRe2qinOM1+bobJQ1tsmuOzarOCFAdYjma15iq4ED3/HP2RK5wS3bo7ikThUu0onWfBWg0PSypgb0v2zp+gw1VscYD6S4u1COhOceMsvdCHemiQ/h7QED9P+VuZskfLMPtSNxTrz1+AhrbE4wDx4sXUhvQqenMYd9QQ2BQ+Z/zJzvkh0lk5yfhFNZGSn27Kh2VN0S3CrqQvpRjCKd5g6iIIv5V1X0uMo+FLedSU9joIvpjO/CqajYDgKhqNgOAqGo2A4CoajYDgKhnMfwQtLRKHamr4uqqMkb6/9+Xc69f70PfxL97RWtcyNBMeX9q50K8TsUJcMyZ5QlGvuH6avhybfjcBdQhDcOIDHVHUAD6nA5ChvCk6OYwW/m+SgHB9+Gb9mnz 
JjkbxWGSnEt+pQbexP/cYz9Cs1fgpCKDuRnuqrj8MHuY/g+EzG8Dq6xmMthMxq8nRFU3BIlTYEV/tTQdMRPj6ZUZzU4ychPxOcHv5h7iM4eZ3mbjrWcsHjpNYzO3P5DfP701N9IXjKDUPViVDV/gb3Ezw+8DYsCy4OqNRQW/B0fmjsrwRPe58PYWW1kpCxr9/idoKTU2K1Nb5OH4a5KE3Jc/uTp/zi/yHbmhOcBv0SdxGcOcveGpfgWcFlmVJwc3/xnp+hC8HxjFH29WvcRnD2fHIyo62b6CG9IauiJMXDmLu4vyk4JE0Nw8pN9Be5i+Bb8VWjBQp+AwqGo2D5GAqGo2A4CoajYDhNwaHamls5OEEMNX0rG+qdU9MbIl3UpZV4W7/8Wyi1r8e1joWSZe+2CZ5f3D1OsTqUhw5FcrHdK38qqWPNLHceirU/Rl16VXBe5uuC26FLwWvDurpXCzk3FLz+iERIIjzfkyplsnhwrXyMrVihTUOHbGf5Cah3VT1PqoTFcVVV/p3a4oMaw9KzGmOBuYXnWKno5lKPi2mq1rLjwNcG8cqeCv0k0zGGan0/k6++p1VClRzm37IpSiPGtrPUVGAxUih2xImeHVdVpfEMRjm3rTYXaxZVlnpczlZrMrYMIp+q3/9/0tmdn8bXOCYdZZw6WdRuVk4zQ56b5pdhcvfNLs8NaHGUVecXBC/VXBY8G2RhCncMoiE4+wIufjqqR4OzgYfik5om8+/c4kaoK9fR46cpRpgExzv5GcFpl6ft44KT+vlstGtWc7IuuJrkKwU/g/8s1MpmvmyytDrMVB2amaXgkPxX1MjaXhScNjHX1x2C6zKNoTfHs1lwa6YuE/zM+nl9lJZrNQQvHMHrvUgfVMpr5qm002O9ZF5mm2h3Z22UjV7nI6vLzfdiXvCO5hvTsktwGE/RWWbzvrFY6CiqFONavYtOBRYLHfVd9PREVP50XVU4baK1txG/vjtOPl2vfrbL1f6S 
GVq/i657XD4DUnR2utKtDKLo8x2XKsN6kYsrHgtySXNn+W8Ep+efD7Wu4EOEg/O2tqK9PdDF5d7L/QTLLhQMR8FwFAxHwXAUDEfBcBQMR8FwFAxHwXAUDEfBcBQMR8FwFAxHwXAUDEfBcBQMR8FwFAxHwXD+e8GPx+PbXXgr/7vgxwNuWMEKRqNgOnC/CqajYDgKhqNgOAqGo2A4CoajYDgKhqNgOAqGo2A4CoazRXD1q56z3/4sXbNBcPKLU9NfCyvdsPSV5z7B47aCe2LxoYVDgrNf2Kzsb/MGwXrtiYsFh1q5fJdLr8F1Qnpmr+CQZ0vv7BQcqhzpmx0LHeG1wBG8eb4RLlXCUTAcBcN5i2D6Pwe5E+8QjP8HXXdCwXAUDMdrMBzvouEoGI6C4SgYjoLhKBiOguEoGI6C4SgYjoLhKBiOguEoGI6C4SgYjoLhKBiOguEoGI6C4SgYjoLhKBiOguEoGI6C4SgYjoLhKBiOguEoGI6C4SgYjoLhKBiOguEoGI6C4SgYjoLhKBiOgm/EkV8RqeD7cOiXvCr4PigYjoLpeA2WCgXDUTAcBcNRMBwFw1EwHAXDUfAX+OTflVLw5/noX4ZT8OdRMBwF0/EaLJehYDgKhrNFcPhLnkxypG82CA7xZUwmOdI5CoajYDgnBXsx7h2PYDgKhqNgOAqGs2OhI1nh8N7qNrhUCUfBcBQMR8FwFAxHwXAUDEfBcBQMR8FwFAxHwXAUDEfBcBQMR8FwFAxHwXAUDEfBcBQMR8FwFAxHwXAUDEfBcBQMR8FwFAxHwXAUDEfBcBQMR8FwFAxHwXAUDEfBcBQMR8FwFAxHwXAUDEfBcBQMR8FwFAxHwXAUDEfBcBQMJxfsH2LAURzB/q0NGtUpWsMs6mvwDQ7ix+Px7S7chtZNVgh9/12kx0PDm7njEazgHdzxGqzgHdzyLlq/2/HnYDiuZMFRMBwFw1EwHAXDUTAcBcNRMBwFw1EwHAXD2SI4+X 
b4lez8C2OZ2CA4xJeYVO5t2Cd43FbwbTgkWL/34ZjgeAn2Wtw7+wWHWrn0y4rg3wM011knpGf2HsEhz5be2Sk4VDnSNzsWOsL0SLz3VrfBpUo4CoajYDgKhqNgOAqGo2A4CoajYDgKhqNgOAqGo2A4CoajYDgKhqNgOAqGo2A4CoajYDgKhqNgOAqGo2A4CoajYDgKhqNgOAqGo2A4CoajYDgKhqNgOAqGo2A4CoajYDgKhqNgOAqGo2A4CoajYDgKhqNgOAqGo2A4CoajYDgKhqNgOAqGo2A4CoajYDgKhqNgOAqGo2A4CoajYDgKhqNgOAqGo2A4CoajYDgKhqNgOAqGs0Vw+EuSDFmO9M0GwSG+jG9pjvSNguHsExzKHM/VvbNT8OsSPOVI5xw4goOCb8SK4N8DttSp4Dux8ybrmVTwffAUDWfHQkdIkt483wWXKuEoGI6C4SgYjoLhKBiOguEoGI6C4SgYjoLhKBiOguEoGI6C4SgYjoLhKBiOguEoGI6C4SgYjoLhKBiOguEoGI6C4SgYjoLhKBiOguEoGI6C4SgYjoLhKBiOguEoGI6C4SgYjoLhKBiOguEoGI6C4SgYjoLhKBiOguEoGI6C4Sj4FI/H49tdWEHBZ3g8ujes4DMoGI6C6XTvV8F0FAxHwXAUDEfBcBQMR8FwFAxHwXAUDEfBcBQMR8FwrhIcLorTc6xuO7YUS8FfCqbg/mJ12zEFdxjsboKlUxQMR8FwFAxHwXDOCQ5/mVK/6TBlHY41JLHO9mtMHu5XO9TXu7V5uk4JDvElbh6++09jhVb0Y7HG5NF+1aG66Nb26aILHrc7E3y2W18RfMpvNZPXCr5iIt8g+APTdbXg49eUKdZ4TcmiH+/Xv5k8fAlOuvUK1UO3tk/XdYJDlXM01tUzeebD0mm3tvfrsODfT00tuEgdjTUcn8k6Vp3YE26qeLHgU93aPl2XHcGhyD4T65m8aCZPfPCGNwo+162vCe7v 
FH2yX5126wOn6Gfs14/rU+jTqwAhSV4QK12AIXVrc79cqoSjYDgKhqNgOAqGo2A4Coaj4Bf1ChMDBY8ky0IkFBxJ1uNAKDiiYDpnnrDoFgUnAP0qOMEjmI3XYDgKZuPPwWxcyWJz8hm4flEwHAXDUTAcBcNRMBwFw1EwHAXDUTAcBcNRMJw/iRFvaEIhEiEAAAAASUVORK5CYII=\",\"iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAAABlBMVEVkBgD///+5/CcxAAAAAnRSTlMA/1uRIrUAAARTSURBVHic7dEBCQAwDMCwzb/pqTiHkigodJa0+R3AWwbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHG 
RxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRxncJzBcQbHGRx3L2yELnclpkkAAAAASUVORK5CYII= 

habe ich versucht, das Bild von Befehlszeilen zu dekodieren:

$ base64 -d string > stringDecoded 
base64: invalid input 
$ base64 -d -i string > stringDecoded 
$ 

wobei der Parameter -i --ignore-garbage steht: * bei der Decodierung, ignorieren nicht-alphabetischen Zeichen . Also, das ist das Problem zu lösen. Für Windows können Sie das gleiche tun decb64 mit:

> dec64 stringa.txt 

So scheint es klar, dass das Problem ist, dass mein Zeichenfolge enthält nicht-alphanumerische Zeichen. Wie kann ich meinen Code ändern, um dieses Problem zu lösen?

Antwort

0

Ich habe verstanden, warum niemand mir eine Antwort gab: Es gab keine Antwort.

Vor einigen Tagen haben die AzureML-Entwickler die Struktur des JSON, das das Bild enthält, geändert. Nun scheint es wie folgt aus:

enter image description here

Es könnte interessant sein, zu wissen, warum es nicht mit der Vorgängerversion nicht funktioniert. Trotzdem ist das Problem gelöst!