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
[17326] Re:Re:Re:TJPEGImage에는 헤더가 없나요?
유영인 [Chris] [cuperido] 1103 읽음    2002-04-09 10:43
단순히, 파일 사이즈와 팔레트를 원하신다면, 다음과 같은 방법은 어떠신가요..?


1) 파일 사이즈
파일 크기는 빌더의 fseek의 도움말의 example 을 보시면 filesize 를 구할 수 있는 방법이 나와 있습니다. API도 있고요. 편하신것으로 사용하시면 될 것 같네요. 해당 JPEG 파일의 크기를 알면 되겠지요.


2) 팔레트
기본적으로 JPEG는 GetPalette라는 메소드를 가지고 있습니다. 아래는 그 GetPalette의 소스입니다. 델파이 입니다.

function TJPEGImage.GetPalette: HPalette;
var
  DC: HDC;
begin
  Result := 0;
  if FBitmap <> nil then
    Result := FBitmap.Palette
  else if FTempPal <> 0 then
    Result := FTempPal
  else if FPixelFormat = jf24Bit then // check for 8 bit screen
  begin
    DC := GetDC(0);
    if (GetDeviceCaps(DC, BITSPIXEL) * GetDeviceCaps(DC, PLANES)) <= 8
then
    begin
      // next line is bug fix - re:
borland.public.delphi.vcl.components
      // Steven Trefethen 21 Aug 1997
      if FTempPal <> 0 then DeleteObject(FTempPal);
      FTempPal := CreateHalftonePalette(DC);
      Result := FTempPal;
    end;
    ReleaseDC(0, DC);
  end;
end;



이곳으로 가시면, 더욱 깊이있는 정보를 얻으실 수 있습니다.

http://www.wotsit.org/



김동욱 님이 쓰신 글 :
: 답변 감사합니다.
:
: 파일 크기나 팔레트등의 정보는 어떻게 알 수 있나요?
:
: FFC000까지의 데이터는 무었인가 궁금하네요?
:
: 이런 자료는 어떻게 찾나요?
:
: ??????
:
: 요즘 저의 무식함이 더욱 돋보이는것 같군요.
:
: 오늘 하루도 건강하시고 즐거운 하루되세요.
:
: 유영인 [Chris] 님이 쓰신 글 :
: : Jpeg는 헤더를 알아낸다 하더라도, Bitmap과 같이 손쉬운 처리를 할 수 없습니다. 양자화 및 마커, 허프만 기법등을 사용하여 데이터를 손실, 혹은 복구하여야 합니다. 아무튼 Jpeg에도 헤더는 있습니다. FFC000 다음부터 시작하는 코드가 Header 입니다.
: :
: : unsigned short Height;     // Height
: : unsigned short Width;      // Width
: : unsigned char  Number;     // 헤더 갯수. 이 숫자만큼 아래 정보가 반복됩니다.
: :
: : unsigned char  ID[3];      // 헤더 이름.
: : unsigned char  H[3];       // 가로 연산 인자
: : unsigned char  V[3];       // 세로 연산 인자
: : unsigned char  dTable[3];  // 양자화 테이블 번호
: :
: : Jpeg가 가지고 있는 테이블 정보만 약 5개 정도가 됩니다. 이 것들을 전부 알아야 디코딩이 가능하며, 단순히 헤더 정보만 원하실때는, 헤더정보에서 필요하신 부분만 따로 빼내는 식으로 코딩하시는 것이 더 빠른 작업을 하실 수 있을 것 같네요.
: :
: :
: : 김동욱 님이 쓰신 글 :
: : : TJPEGImage에는 BITMAPINFO와 같은 헤더가 없나요?
: : :
: : : 엄청 궁금한데 설명된곳이 없네요.
: : :
: : : 아시는 분있으면 가르쳐 주세요.
: : :
: : : 즐거운 하루 되세요.

+ -

관련 글 리스트
17306 TJPEGImage에는 헤더가 없나요? 김동욱 883 2002/04/08
17308     Re:TJPEGImage에는 헤더가 없나요? 유영인 [Chris] 1340 2002/04/08
17319         Re:Re:TJPEGImage에는 헤더가 없나요? 김동욱 973 2002/04/09
17326             Re:Re:Re:TJPEGImage에는 헤더가 없나요? 유영인 [Chris] 1103 2002/04/09
17367                 Re:Re:Re:Re:TJPEGImage에는 헤더가 없나요? 김동욱 1136 2002/04/10
17379                     Re:Re:Re:Re:Re:TJPEGImage에는 헤더가 없나요? 유영인 [Chris] 960 2002/04/10
17424                         Re:Re:Re:Re:Re:Re:TJPEGImage에는 헤더가 없나요? 김동욱 1048 2002/04/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.