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
[21533] Re:RGB => YCbCr로 변환..
방태윤 [nabty] 3620 읽음    2002-09-18 11:25
제 생각엔 원본 bitmap 을 저장하기전에 원본비트맵을
Y : 16~235
Cb, Cr : 16 ~ 240 에 맞도록 rgb 를 조정해서 temp 비트맴을 만들어 사용해야 겠네요..

ycbcr <-> rgb 변환은 아래와 같습띠다.

y=0.257r+0.504g+0.098b+16
cb=-0.148r-0.291g+0.439b+128
cr=0.439r-0.368g-0.071b+128

r=1.164(y-16)+1.596(cr-128)
g=1.164(y-16)-0.813(cr-128)-0.392(cb-128)
b=1.164(y-16)+2.017(cb-128)

이런 규칙이 있으니까...
계산해서 y가 16 미만이면 y=16 이 되도록
rgb를 계산해서 temp비크맵을 만들면 되지 않을까요?

제 생각일 뿐입니다.^^ 해보면 무슨 문제가 있을런지는 모름니다...


엄태인 님이 쓰신 글 :
: 자꾸 질문만 올리네요..
: VCL에서 TBitmap을 JPEG으로 저장을 하는데...
: 컴퍼넌트를 LeadTools 12를 사용하고 있습니다.
: 이 컴퍼넌트를 사용하여 JPEG 파일로 저장을 하는데...
:
: 문제는 JPEG 파일을 YCbCr의 범위를
:
: Y : 16~235
: Cb, Cr : 16 ~ 240
: 으로 제한을 두어야 합니다.
: 하지만 그냥 저장을 하니 Y값이 255까지 가고..
: 그래서 이 이미지를 사용할수가 없네요...
:
: 위의 YCbCr의 값의 범위를 제한할수 있는 방법이 없을까요?
: 가능하면 LeadTools를 이용하면 더 좋겠구요..
:
: Jpeg으로 저장하는 함수는
: L_SaveBitmap(FileName.c_str(), &hImage, FILE_JFIF, 24, 20, NULL);
: 이렇게 했습니다.
:
:
:

+ -

관련 글 리스트
21517 RGB => YCbCr로 변환.. 엄태인 2144 2002/09/17
21533     Re:RGB => YCbCr로 변환.. 방태윤 3620 2002/09/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.