반응형
이미지의 구조를 한번 파악해 볼까 하고, jpg 파일을 열어보려고 프로그램을 만들었는데,
text 파일을 Open시키는 것처럼 해서는 이미지 파일을 끝까지 열 수 없는 현상이 생겼다.
C/C++ 언어는 최근에 시작했기 때문에 모르는 것 투성이라서 찾아봤더니 바이너리(?) 형식으로
열어야 되더라.
아래 코드가 jpg 파일을 바이너리 형태로 여는 코드다.
#include <iostream>
using namespace std;
int main() {
FILE *fp = fopen("C:\\file1.jpg","rb");
fseek(fp,0,SEEK_END); //go to end
int len = ftell(fp); //get position at end (length)
fseek(fp,0,SEEK_SET); //go to beg.
char *buf = (char *)malloc(len); //malloc buffer
fread(buf,len,1,fp); //read into buffer
int j = 0;
bool bFirst = true;
for(int i=0; i< 3300; i++)
{
if(bFirst)
j=i;
printf("%02X ", buf[i] & 0xff);
if(0 == (i+1)%16){
printf(" ");
for( ; j<= i; j++)
{
if(buf[j] != '\n')
printf("%c ", buf[j]);
}
printf("\n", i);
bFirst = true;
}else
bFirst = false;
}
fclose(fp);
return 0;
}
반응형
'System Programmings > C++' 카테고리의 다른 글
[C++] MS에서 사용하는 헝가리안 표기법 (0) | 2014.10.16 |
---|---|
[C++] 가상 함수 (0) | 2014.10.16 |
[C++] 퀵 정렬 (Quick Sort) C++ 이용한 다른 소스 (2) | 2010.10.06 |
[C++] 로또 뽑기 (난수 발생 & setw()함수 사용법) (0) | 2010.07.12 |
[C++] 가상함수의 활용 (0) | 2010.07.08 |