XYZ-RGB 색상 변환 구현

Jmnote (토론 | 기여)님의 2014년 5월 1일 (목) 04:24 판 (새 문서: ;XYZ-RGB 색상 변환 구현 ;xyz2rgb ==소스 코드== <source lang='php'> <?php function xmp_print($arr) { echo '<xmp>'; print_r($arr); echo '</xmp>'; } function xyz2rgb($xyz){ li...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
XYZ-RGB 색상 변환 구현
xyz2rgb

1 소스 코드

<?php
function xmp_print($arr) { echo '<xmp>'; print_r($arr); echo '</xmp>'; }
function xyz2rgb($xyz){
	list($x, $y, $z) = $xyz;

	// Observer = 2°, Illuminant = D65
	$r =  0.032406*$x -0.015372*$y -0.004986*$z;
	$g = -0.009689*$x +0.018758*$y +0.000415*$z;
	$b =  0.000557*$x -0.002040*$y +0.010570*$z;

	$r = $r > 0.0031308 ? pow( $r, 0.4166666666666667)*1.055 - 0.055 : $r*12.92;
	$g = $g > 0.0031308 ? pow( $g, 0.4166666666666667)*1.055 - 0.055 : $g*12.92;
	$b = $b > 0.0031308 ? pow( $b, 0.4166666666666667)*1.055 - 0.055 : $b*12.92;
	
	return array($r, $g, $b);
}

$white = array(95.047, 100.000, 108.883);
$yellow = array(77.000, 92.780, 13.850);
$red = array(41.240, 21.260, 1.930);
$black = array(0, 0, 0);
 
xmp_print( xyz2rgb( $white ) );
xmp_print( xyz2rgb( $yellow ) );
xmp_print( xyz2rgb( $red ) );
xmp_print( xyz2rgb( $black ) );

2 실행 결과

Array
(
    [0] => 1.0000010743409
    [1] => 1.0000334348458
    [2] => 0.99992724061039
)
Array
(
    [0] => 0.99999636903292
    [1] => 1.0000272492782
    [2] => 0.00015891599999955
)
Array
(
    [0] => 0.99999636903292
    [1] => 0.00027997640000009
    [2] => 4.909599999926E-6
)
Array
(
    [0] => 0
    [1] => 0
    [2] => 0
)

3 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}