상세 컨텐츠

본문 제목

LCMS2 #7 - jpgicc.c

멀티미디어/이미지(Image)

by cepiloth 2020. 1. 20. 18:43

본문

728x90
반응형

 

LCMS2 의 동작

이미지 메타 정보 확인 -> 색상프로파일 위치 확인 -> 트랜스폼 생성 -> 생성한 트랜스폼으로 렌더링

위의 절차를 갖는다.

 

이미지 메타 정보 확인

이미지 포맷의 메타정보, XMP 등 추가 정보를 읽어서 프로파일 정보가 있는지 확인 한다.

 

색상 프로파일 위치 확인

색상 프로파일 사용 유무를 결정 해야한다.

첫 번째, 내장 프로파일 유무 확인

두 번째, 디바이스 경로의 프로파일 확인

세 번째, 위 두가지가 없고 LCMS2 에서 지원하는 색상 프로파일이면 프로파일 생성

네 번째, 위 3가지가 없다면 프로파일을 생성하지 않는다.

if (lIsDeviceLink) { 
	OutputColorSpace = GetDevicelinkColorSpace(hIn); 
} else { 
	OutputColorSpace = GetProfileColorSpace(hOut); 
}

 

트랜스폼 생성

cmsHTRANSFORM xform; 실제로 색상 프로파일을 생성 한다.
xform 을 생성 하기 위해서는 cmsCreateProofingTransform, cmsCreate* 계열 메소드를 사용한다.

xform = cmsCreateProofingTransform(hIn, wInput, hOut, wOutput, hProof, Intent, ProofingIntent, dwFlags);

 

생성한 트랜스폼으로 렌더링

while (Decompressor.output_scanline < Decompressor.output_height) 
{ 
	// SCANLINE 단위로 읽어 온다.
	jpeg_read_scanlines(&Decompressor, &ScanLineIn, 1); 
	
    // 생성한 transform 기준으로 색상 프로파일을 적용하여 Dest Color 로 변환
    cmsDoTransform(hXForm, ScanLineIn, ScanLineOut, Decompressor.output_width); 
	
    .....
}

 

728x90
반응형

'멀티미디어 > 이미지(Image)' 카테고리의 다른 글

SKCMS 컬러프로파일러  (0) 2020.03.03
LCMS2 #8 - 색상 변경 예제  (0) 2020.01.21
LCMS2 #6 - jpgicc.c 파일 분석  (0) 2020.01.11
LCMS2 #5 - Github Contributor 승인  (0) 2020.01.09
LCMS2 #4 - Pull Request Github  (1) 2020.01.09

관련글 더보기

댓글 영역