#define MAX_SIZE 1024*50
int main(void)
{
unsigned char chBuf[MAX_SIZE] = {0};
unsigned char chBegin[2] = {0xFF, 0xD8};
unsigned char chEnd[2] = {0xFF, 0xD9};
int iLen = 0;
int iBegin = 0;
int iEnd = 0;
FILE* fp = fopen("haha.jpg", "rb+");
if (fp != NULL)
{
fseek(fp, 0, SEEK_END);
iLen = ftell(fp);
fseek(fp, 0, SEEK_SET);
fread(chBuf, 1, iLen, fp);
int ioffset = 0;
while (1)
{
if (!memcmp(chBuf+ioffset, chBegin, 2))
{
iBegin = ioffset;
}
if (!memcmp(chBuf+ioffset, chEnd, 2))
{
iEnd = ioffset;
break;
}
ioffset += 2;
}
fclose(fp);
}
fp = fopen("test.jpg", "wb");
if (NULL != fp)
{
fwrite(chBuf+iBegin, 1, iEnd-iBegin+2, fp);
fclose(fp);
}
return 0;
}