Ho una pagina che invia dati canvas html5, codificati come immagine bmp base64 (utilizzando questo algoritmo http://devpro.it/code/216.html) a un processo serveride che la converte in un oggetto System.Drawing.Image e lo fa alcune operazioni su di esso.System.ArgumentException: Parametro non valido
Nel mio ambiente locale, questo funziona bene, ma la mia istanza EC2 ottengo il seguente errore:
System.ArgumentException: Parameter is not valid. at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData) at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement)
Il mio codice si presenta come segue:
System.Drawing.Image image = null;
string b64string = "...";
byte[] sf = Convert.FromBase64String(b64string);
using (MemoryStream s = new MemoryStream(sf, 0, sf.Length))
{
image = System.Drawing.Image.FromStream(s, false);
}
...
Ecco un file di testo con un esempio di b64string che sto usando per testare: https://docs.google.com/leaf?id=0BzVLGmig1YZ3MTM0ODBiNjItNzk4Yi00MzI5LWI5ZWMtMzU1OThlNWEyMTU5&hl=en_US
Ho anche provato quanto segue e ho avuto gli stessi risultati:
System.Drawing.ImageConverter converter = new System.Drawing.ImageConverter();
image = converter.ConvertFrom(sf) as System.Drawing.Image;
Qualsiasi intuizione sarebbe molto apprezzata!
Quale versione del framework si sta eseguendo su, localmente e sull'istanza di ec2? – Oded
Vuoi dire che i dati di test effettivi (quel file) non possono essere decodificati sull'istanza di ec2, ma possono essere sulla tua macchina di sviluppo? Per esempio. non c'è alcuna possibilità che ci siano dati differenti elaborati nel tuo dev e nel test del tuo server. –
Mi dispiace, ho dimenticato di menzionare .NET 4.0 su entrambi. – ari