Pregunta

Hay una manera de determinar que estoy pasando la matriz de bytes correcta a MemoryStream si quiero crear una imagen a partir de una matriz de bytes.

MemoryStream mStream = new MemoryStream();
mStream.Write(byteArray, 0, byteArray.Lenth);
Image imgObj = Image.FromStream(mStream);

¿Cómo puedo, si es posible? Correcto ¿El byteArray indica que es un byteArray válido para una imagen?

¿Fue útil?

Solución 4

Aquí está la respuesta Procesamiento de imágenes para dummies con C # y GDI +

OT: No sé cómo poner enlaces en comentarios, así que lo puse en las respuestas.

Otros consejos

Esta es una pregunta realmente siniestra, seguramente debes saber de dónde estás leyendo tus datos.Cuando creas una imagen usando Image.FromStream, un ArgumentException se lanzará si no puede reconocer el formato.¿Por qué no utiliza ese mecanismo para identificar un flujo incorrecto de datos, en lugar de reinventar la rueda?

Yo mismo he hecho un poco de manipulación de imágenes programáticas.Lo que querrá hacer es encontrar la especificación para el formato de imagen que está modificando y asegúrese de hacer todo lo que debe.Por ejemplo, los archivos PNG son fragmentados y tienen cheques en cada sección, por lo que si cambia algo en ese trozo, debe volver a calcular la suma de comprobación al final de la sección.

Después de leer tus preguntas y comentarios, creo que lo que estás intentando es manipular la imagen manipulando la matriz de bytes antes de colocarla en la clase Imagen.Y ahora afirma que su matriz de bytes está corrupta para este formato de imagen y cómo puede corregirlo.

Entonces la respuesta a esta pregunta sería:Lo corrompiste, lo arreglarás.

Pero para resolver realmente su problema, si su objetivo es manipular la imagen en sí, simplemente cárguela en un archivo intermedio. Image y usar el Graphics clase para manipular tu imagen.Luego coloque el resultado en el real Objeto de imagen que te guste.Listo, sin problemas para trabajar en la matriz de bytes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top