Tengo una matriz de bytes pequeños (menos de 25K) que recibo y decodizo como parte de un sobre de mensaje más grande. Algunas veces esta es una imagen, y cuando es e imagen, a veces es un jpg. No tengo información de contexto que no sea la matriz de bytes, y necesito identificar si es una imagen y si la imagen es de tipo jpg.¿Cómo identificar los contenidos de un byte [] es un jpeg?
¿Hay algún número mágico o bytes mágicos que existan al principio, al final o en algún desplazamiento que pueda observar para identificarlo?
Un ejemplo de mi código es el siguiente (de memoria, no c/p):
byte[] messageBytesAfterDecode = retrieveBytesFromEnvelope();
if(null != messageBytesAfterDecode && messageBytesAfterDecode > 0){
if(areTheseBytesAJpeg(messageBytesAfterDecode)){
doSomethingWithAJpeg(messageBytesAfterDecode)
}else{
flagEnvelopeAsHavingBadContentInTheField();
}
}
Realmente necesito lo que entraría en el método
areTheseBytesAJpeg(byte[] mBytes){}
, o incluso un puntero a una especificación que lo detalla. Estoy esperando que hay una manera muy rápida de hacer esta determinación, ya que realmente no quiero leerlos en una imagen, etc.
todo google, incluso lo puso en los resultados: http://www.google.com/search?&q=jpg+magic+number – zsalzbank
Nice. Déjame correr mis exámenes y ¡volveré! – Kylar
que fue muy agradable! el mío era mitad wikipedia, mitad firefox. Debe ser lo que me está frenando. –