|
제 생각엔 원본 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);
: 이렇게 했습니다.
:
:
:
|