상세 컨텐츠

본문 제목

LCMS2 #8 - 색상 변경 예제

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

by cepiloth 2020. 1. 21. 16:15

본문

728x90
반응형

http://www.littlecms.com/LittleCMS2.9%20API.pdf

 상기 URL에 LCMS를 사용하는 API Reference 가 있다. LCMS2는 색상 프로파일을 이용하여 출력되는 영상이 색상을 보정 및 색상 변환을 쉽게 사용할 수 있는 라이브러리이다.

 

RGB Color To CMYK Color

#include "lcms2.h"
int main(void)
{
	cmsHPROFILE hInProfile, hOutProfile;
	cmsHTRANSFORM hTransform;
	int i;
	
	hInProfile = cmsOpenProfileFromFile("sRGBColorSpace.ICM", "r");
	hOutProfile = cmsOpenProfileFromFile("MyCmyk.ICM", "r");
	
	hTransform = cmsCreateTransform(hInProfile, TYPE_RGB_8, hOutProfile, TYPE_CMYK_8, INTENT_PERCEPTUAL, 0);
	
	cmsCloseProfile(hInProfile);
	cmsCloseProfile(hOutProfile);
	
	for (i=0; i < AllScanlinesTilesOrWatseverBlocksYouUse; i++)
	{
		cmsDoTransform(hTransform, YourInputBuffer, YourOutputBuffer, YourBuffersSizeInPixels);
	}
	
	cmsDeleteTransform(hTransform);
	
	return 0;
}

 

CMYK Color To RGB Color

#include "lcms2.h"
int main(void)
{
	cmsHPROFILE hInProfile, hOutProfile;
	cmsHTRANSFORM hTransform;
	int i;
	
	hInProfile = cmsOpenProfileFromFile("sRGBColorSpace.ICM", "r");
	hOutProfile = cmsOpenProfileFromFile("MyCmyk.ICM", "r");
	
	hTransform = cmsCreateTransform(hInProfile, TYPE_RGB_8, hOutProfile, TYPE_CMYK_8, INTENT_PERCEPTUAL, 0);
	
	cmsCloseProfile(hInProfile);
	cmsCloseProfile(hOutProfile);
	
	for (i=0; i < AllScanlinesTilesOrWatseverBlocksYouUse; i++)
	{
		cmsDoTransform(hTransform, YourInputBuffer, YourOutputBuffer, YourBuffersSizeInPixels);
	}
	
	cmsDeleteTransform(hTransform);
	
	return 0;
}

 

 이외의 LCMS 자체 Lab에서 지원하는 색상 프로파일이 있으며 로컬에 있는 프로 파일을 읽지 않고 코드상에 직접 생성하여 색상 변환 가능하다. jpgicc.c 파일을 분석 내용과 마찬가지로 LCMS는 이미지에 메타 데이터에서 색상 프로파일을 사용하여서 만든 이미지인지 확인하고 실제 디스플레이(프린터, 모니터, 기타)에 출력될 때 이를 색상 프로파일을 참조하여 출력될 색상을 변환한다. 이상으로 LCMS2 관련한 포스팅을 마친다.

728x90
반응형

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

PNG AlphaBall Test Image  (0) 2020.07.01
SKCMS 컬러프로파일러  (0) 2020.03.03
LCMS2 #7 - jpgicc.c  (0) 2020.01.20
LCMS2 #6 - jpgicc.c 파일 분석  (0) 2020.01.11
LCMS2 #5 - Github Contributor 승인  (0) 2020.01.09

관련글 더보기

댓글 영역