2016-08-12 1 views

답변

0

이미지 코드의 시작은, FFD8이다, 뭔가 같은 :

#include <stdio.h> 
#include <string.h> 

int main(void) 
{ 
    unsigned char seq[] = {0x01, 0x02, 0xFF, 0xD8, 'S', 'O', 'I', 0x00}; 
    unsigned char *res = seq; 

    /* We can not use strstr because seq is not a valid string */ 
    while ((res = memchr(res, 0xFF, sizeof seq - (res - seq)))) { 
     if (*(++res) == 0xD8) { 
      res++; /* + 1 to consume 0xD8 */ 
      break; 
     } 
    } 
    if (res != NULL) { 
     printf("%s\n", res); 
    } 
    return 0; 
} 

출력 :

SOI 
0

은 JPEG의 모든 마커 머리글의 시작 마커는 0xFF이고, 마커 마커는 0xD8입니다.
값이 0xFF 인 바이트를 찾아서 다음 바이트가 0xD8인지 확인할 때까지 데이터를 반복 할 수 있습니다. 축하합니다, 당신은 이제 소이 마커를 발견했습니다.