Tengo una página que envía datos de lienzo html5, codificados como una imagen base bmp (utilizando este algoritmo http://devpro.it/code/216.html) a un proceso del lado del servidor que lo convierte en un objeto System.Drawing.Image y lo hace algunas operaciones en él.System.ArgumentException: El parámetro no es válido
En mi entorno local, esto funciona muy bien, pero en mi instancia EC2 me sale el siguiente error:
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)
Mi código es el siguiente:
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);
}
...
Aquí hay un archivo de texto con una muestra b64string que estoy utilizando para probar: https://docs.google.com/leaf?id=0BzVLGmig1YZ3MTM0ODBiNjItNzk4Yi00MzI5LWI5ZWMtMzU1OThlNWEyMTU5&hl=en_US
También he intentado lo siguiente y tuve los mismos resultados:
System.Drawing.ImageConverter converter = new System.Drawing.ImageConverter();
image = converter.ConvertFrom(sf) as System.Drawing.Image;
¡Cualquier observación sería muy apreciada!
¿En qué versión del framework está ejecutando esto de forma local y en la instancia de ec2? – Oded
¿Quiere decir que los datos de prueba reales (ese archivo) no se pueden decodificar en la instancia de ec2, pero pueden estar en su máquina de desarrollo? P.ej. no hay posibilidad de que se procesen datos diferentes en su desarrollador y en su prueba de servidor. –
Lo sentimos, olvidé mencionar .NET 4.0 en ambos. – ari