C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[35242] Re:그림파일 여러개를 붙여서 파일로 만들려고 합니다
방태윤 [nabty] 1093 읽음    2004-05-29 11:59
대부분은 그림화일은 헤더와 데이터 부분으로 되어 있습니다.
일단 먼저 헤더를 만든다면..
struct my_hearder{
  char info[10]; //그냥 이파일이 어떤포멧인가 정도를 알려주는 역활입니다.
  int image_count; //님의 경우에는 30*30 이 고정이라고 생각되므로 필요한정보는 조각 그림의 갯수입니다. 
  //int width; 만약 조각 그림이 30*30 인 경우도 있고 아닌 경우도 있다면 이런류의 정보를 추가해야 겠죠?
  //int height;
  //int bit_info; 이런것도 필요할겁니다..사이즈 계산 하려면요..지금은 30*30*2 이지만.
  //기타 필요한 정보를 헤더에 넣습니다.
};
그리고 데이터가 필요한데...
님이 dword colorTempArray[30][30] 를 만들어 놓았다니 그걸 사용하면 됩니다.
열개가 필요하니 대충 dword colorTempArray[10][30][30] 이런 식으로 가공해 주시고요.

이제 만들고 불러오죠.

void make_pic()
{
  struct my_hearder hd;
  memcpy(hd.info,"my pic");
  hd.image_count=10;
  //헤더 만들기 완료

  화일을 생성합니다.(알아서 생성하시고요..전 옛날 도스함수로 생각나는데로 써볼께요)
  FILE*fp=fopen("test.pic","w+b");
  fwrite(&hd,sizeof(struct my_hearder),1,fp);//헤더를 저장.
  for(int i=0;i<hd.image_count;i++){
    fwrite(colorTempArray[i],sizeof(colorTempArray[i]),1,fp);//데이터를 저장.
  }
  fclodr(fp);
}
void load_pic()
{
  struct my_hearder hd;
  화일을 엽니다.화일입출력은 알아서 하십시요.. 
  FILE*fp=fopen("test.pic","r+b");
  fread(&hd,sizeof(struct my_hearder),1,fp);//헤더를 불러옵니다..
  if(memncmp(hd.info,"my pic",6)==0){ //헤더정보를 확인 합니다.이럴려고 넣은거니까..
   
  }
  데이더를 읽어드립니다.
  for(int i=0;i<hd.image_count;i++){
    fread(colorTempArray[i],sizeof(colorTempArray[i]),1,fp);//데이터를 읽어옴.
  }
  fclodr(fp);
}
대충 이런 형태로 하면 될거같아 적어봤습니다...
온라인으로 막 적은거라  컴파일 함수형태 다 오류 있으겁니다.
이러한 모양으로 구성된다는것만 참고 하십시요..


구리구리 님이 쓰신 글 :
: 조그만 그림 예를 들면 30*30 정도의 그림들이 10개정도 있다고 하면
:
: 앞에 헤더 넣고 이것들을 쭉 이어서 붙여서 새로운 포맷이나 bmp형식으로 저장을 하려고 하는데요
:

:
: 그림을 하나를 그냥 dword colorTempArray[30][30]에 각각의 픽셀값을 넣는건 했는데요
:
: 이 그러면 일일이 크기에 맞춰서 변수를 만들어 줘야하는데 10개를 붙이면
:
: dword colorSaveArray[30][300]의 식으로 만들어야 하는데
:

:
: dword colorSaveArray[height][width] 이런식으로 생성을 할순 없는걸로 아는데요
:
: 어떻게 해야하는지 알려주세요
:

:
: 비트맵에서는 그냥 하나의 변수 같은곳에 픽셀데이터가 쭉 있다고 하던데요 잘 이해가 안되네요
:
: 다른 방법이 있으면 알려주시면 감사하고요
:

+ -

관련 글 리스트
35239 그림파일 여러개를 붙여서 파일로 만들려고 합니다 구리구리 879 2004/05/29
35249     Re:그림파일 여러개를 붙여서 파일로 만들려고 합니다 김상면 1043 2004/05/29
35242     Re:그림파일 여러개를 붙여서 파일로 만들려고 합니다 방태윤 1093 2004/05/29
35243         Re:Re:배열 동적 할당을 하려던 건데요... 구리구리 958 2004/05/29
35246             Re:Re:Re:배열 동적 할당을 하려던 건데요... 김진영 1135 2004/05/29
35250                 Re:Re:Re:Re:배열 동적 할당을 하려던 건데요... 김상면 1511 2004/05/29
35254                     Re:Re:Re:Re:Re:배열 동적 할당을 하려던 건데요... 김진영 1146 2004/05/30
35255                         Re:Re:Re:Re:Re:Re:배열 동적 할당을 하려던 건데요... 김상면 1263 2004/05/30
35270                             ^^ 답변해주신 분들 감사드립니다(냉무) 구리구리 764 2004/05/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.