|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.awt.color.ColorSpace
java.awt.color.ICC_ColorSpace
public class ICC_ColorSpace
ICC_ColorSpace 클래스는, ColorSpace abstract 클래스의 구현입니다. 디바이스비의존 및 디바이스 의존의 칼라 스페이스의 이 표현은, International Color Consortium Specification ICC. 1:2001-12, File Format for Color Profiles 의 스펙에 근거하고 있습니다 (http://www.color.org 를 참조).
일반적으로, Color 또는 ColorModel 는, 입력, 표시, 또는 출력 프로파일의 어떤 것인가인 ICC 프로파일에 관련하고 있습니다 (ICC 스펙을 참조). 다른 종류의 ICC 프로파일에는, 예를 들어 추상 프로파일, 디바이스 링크 프로파일, 및 이름 첨부 칼라 프로파일등이 있어, 그것들은 칼라, 이미지, 디바이스등의, 칼라 스페이스를 나타내는데 적절한 정보를 포함하지 않습니다 (ICC_Profile 를 참조). 올바르지 않은 ICC 프로파일로부터 ICC_ColorSpace 객체를 작성하려고 하면(자) 에러가 됩니다.
ICC 프로파일은, 프로파일 (모니터등)의 칼라 스페이스로부터 프로파일 접속 영역 (PCS)에의 변환을 나타냅니다. 이미지 또는 칼라에 태그 붙이고 하는 이 프로파일은, ICC 프로파일 형식 스펙으로 정의되고 있는 2 개의 특정의 디바이스비의존 영역 (1 개의 CIEXYZ 영역 및 2 개의 CIELab 영역)의 어느 쪽인지인 PCS 를 가집니다. 대부분의 경우, 이 프로파일은, 가역 변환을 가지는지, 양방향의 변환을 명시적으로 지정합니다. PCS 로부터 프로파일의 네이티브 영역에의 변환을 요구하는 방법으로 ICC_ColorSpace 객체가 사용되지 않으면 안되어, 그 변환을 올바르게 실행하는데 올바르지 않은 데이터가 있는 경우, ICC_ColorSpace 객체는 지정된 형태의 칼라 스페이스 (TYPE_RGB, TYPE_CMYK 등)에서 출력을 생성합니다만, 출력 데이터의 특정의 칼라치는 정의되지 않습니다.
이 클래스의 자세한 것은, 디폴트의 칼라 스페이스에서 draw 하는지, 기존의 칼라 스페이스를 가지는 임포트 된 이미지를 조작 및 표시하는 단순한 애플릿에서는 중요하지는 않습니다. 그러한 애플릿은, ColorSpace.getInstance()를 사용해 디폴트 칼라 스페이스의 1 개를 취득할 필요가 어느 정도입니다.
ColorSpace
,
ICC_Profile
,
직렬화 된 형식 필드의 개요 |
---|
클래스 java.awt.color. ColorSpace 로부터 상속된 필드 |
---|
CS_CIEXYZ , CS_GRAY , CS_LINEAR_RGB , CS_PYCC , CS_sRGB , TYPE_2CLR , TYPE_3CLR , TYPE_4CLR , TYPE_5CLR , TYPE_6CLR , TYPE_7CLR , TYPE_8CLR , TYPE_9CLR , TYPE_ACLR , TYPE_BCLR , TYPE_CCLR , TYPE_CMY , TYPE_CMYK , TYPE_DCLR , TYPE_ECLR , TYPE_FCLR , TYPE_GRAY , TYPE_HLS , TYPE_HSV , TYPE_Lab , TYPE_Luv , TYPE_RGB , TYPE_XYZ , TYPE_YCbCr , TYPE_Yxy |
생성자 의 개요 | |
---|---|
ICC_ColorSpace (ICC_Profile profile)
ICC_Profile 객체로부터 새로운 ICC_ColorSpace 를 구축합니다. |
메소드의 개요 | |
---|---|
float[] |
fromCIEXYZ (float[] colorvalue)
CS_CIEXYZ 변환 칼라 스페이스에 있다고 생각되는 칼라치를 이 ColorSpace 로 변환합니다. |
float[] |
fromRGB (float[] rgbvalue)
디폴트의 CS_sRGB 칼라 스페이스에 있다고 생각되는 칼라치를 이 ColorSpace 로 변환합니다. |
float |
getMaxValue (int component)
지정된 성분에 대해, 표준화 된 성분치의 최대치를 돌려줍니다. |
float |
getMinValue (int component)
지정된 성분에 대해, 표준화 된 성분치의 최소치를 돌려줍니다. |
ICC_Profile |
getProfile ()
이 ICC_ColorSpace 의 ICC_Profile 를 돌려줍니다. |
float[] |
toCIEXYZ (float[] colorvalue)
이 ColorSpace 에 있다고 생각되는 칼라치를 CS_CIEXYZ 변환 칼라 스페이스로 변환합니다. |
float[] |
toRGB (float[] colorvalue)
이 ColorSpace 에 있다고 생각되는 칼라치를 디폴트의 CS_sRGB 칼라 스페이스의 값으로 변환합니다. |
클래스 java.awt.color. ColorSpace 로부터 상속된 메소드 |
---|
getInstance , getName , getNumComponents , getType , isCS_sRGB |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
생성자 의 상세 |
---|
public ICC_ColorSpace(ICC_Profile profile)
profile
- 지정된 ICC_Profile 객체
IllegalArgumentException
- 프로파일이 ColorSpace 를 표현하는데
올바르지 않은 경우메소드의 상세 |
---|
public ICC_Profile getProfile()
public float[] toRGB(float[] colorvalue)
이 메소드에서는, 입력과 출력의 색이 가장 지각적으로 가까운 색을 작성할 수 있도록(듯이) 설계된 알고리즘을 사용해, 칼라치를 변환합니다. 칼라치를 비색 변환하려면 , 이 칼라 스페이스의 toCIEXYZ
메소드를 사용해, 최초로 입력 칼라 스페이스로부터 CS_CIEXYZ 칼라 스페이스로 변환해, 다음에 CS_sRGB 칼라 스페이스의 fromCIEXYZ
메소드를 사용해, CS_CIEXYZ 를 출력 칼라 스페이스로 변환합니다. 상세한 것에 대하여는 toCIEXYZ
와 fromCIEXYZ
를 참조해 주세요.
ColorSpace
내의 toRGB
colorvalue
- 이 ColorSpace 의 성분수와 적어도 같은 길이의
float 배열
ArrayIndexOutOfBoundsException
- 배열의 길이가,
이 ColorSpace 의 성분수보다 작은 경우public float[] fromRGB(float[] rgbvalue)
이 메소드에서는, 입력과 출력의 색이 가장 지각적으로 가까운 색을 작성할 수 있도록(듯이) 설계된 알고리즘을 사용해, 칼라치를 변환합니다. 칼라치를 비색 변환하려면 , CS_sRGB 칼라 스페이스의 toCIEXYZ
메소드를 사용해, 최초로 입력 칼라 스페이스를 CS_CIEXYZ 칼라 스페이스로 변환해, 다음에 이 칼라 스페이스의 fromCIEXYZ
메소드를 사용해, CS_CIEXYZ 를 출력 칼라 스페이스로 변환합니다. 상세한 것에 대하여는 toCIEXYZ
와 fromCIEXYZ
를 참조해 주세요.
ColorSpace
내의 fromRGB
rgbvalue
- 적어도 3 의 길이를 가지는 float 배열
ArrayIndexOutOfBoundsException
- 배열의 길이가
3 보다 작은 경우public float[] toCIEXYZ(float[] colorvalue)
이 메소드는, ICC 스펙으로 정의되고 있는 상대색도 측정을 사용해 칼라치를 변환합니다. 즉, 이 메소드가 돌려주는 XYZ 의 값은 CS_CIEXYZ 칼라 스페이스의 D50 흰색점을 기준으로 해 표시됩니다. 이 표현은, 입력 칼라 스페이스로부터 CS_CIEXYZ 영역에, 다음에 출력 칼라 스페이스에 변환되는, 2 스텝의 칼라 변환 처리에 대해 편리합니다. 이 표현은, 지정된 칼라치로부터 색도계를 사용해 측정하는 XYZ 치와 같지는 않습니다. 현재 CIE 추천의 계산방법을 사용해 측정되고 있는 XYZ 치를 계산하려면 , 한층 더 상세한 변환이 필요합니다. 이하의 패러그래프로 이 내용에 대해 자세하게 설명합니다.
ICC 기준에서는, 1 개의 디바이스로부터 다른 디바이스에 색을 변환하기 위한 기구로서 디바이스에 의존하지 않는 칼라 스페이스 (DICS)를 사용합니다. 이 아키텍쳐(architecture)에서의 색의 변환은, 전송원디바이스의 칼라 스페이스로부터 ICC DICS 에, 다음에 이 ICC DICS 로부터 출력처의 칼라 스페이스로 행해집니다. ICC 기준은, 디바이스의 칼라 스페이스와 ICC DICS 의 사이에 행해지는 변환을 포함한 디바이스 프로파일을 정의합니다. 전송원디바이스의 디바이스대 DICS 변형 프로파일을, 출력처 디바이스의 DICS 대 디바이스 변형 프로파일에 접속해, 소스 디바이스의 색으로부터 출력처 디바이스의 색에 전체적으로 변환합니다. 따라서, ICC DICS 는 공통되어 프로파일 접속 영역 (PCS)이라고 보여집니다. toCIEXYZ 메소드와 fromCIEXYZ 메소드로 사용되는 칼라 스페이스는, ICC 프로파일 형식 스펙이 정의하는 CIEXYZ PCS 입니다. 이것은 또, ColorSpace.CS_CIEXYZ 가 표현하는 칼라 스페이스와 같습니다.
색의 XYZ 치는, 어느 흰색점을 기준으로 해 자주(잘) 표현됩니다. XYZ 치의 실제의 의미는, 그 값을 보관 유지하는 흰색점을 모른다고 이해할 수 없습니다. 이것은, 상대색도 측정으로서 알려져 있습니다. PCS 는 D50 의 흰색점을 사용하고 있으므로, PCS 의 XYZ 치는 D50 를 기준으로 하고 있습니다. 예를 들어, PCS 의 흰색점이 D50 를 기준으로 한 XYZ 치를 가진다고 하면(자), X=. 9642, Y=1. 000, Z=0. 8249 가 되도록(듯이) 정의됩니다. 이 흰색점은, 그래픽 아트의 어플리케이션으로 공통되어 사용됩니다만, 다른 어플리케이션에서는, 이 흰색점 이외의 것이 자주 사용됩니다.
프린터나 모니터등의 디바이스의 색의 특성을 정량화하기 위해서, 특정의 디바이스의 색에 XYZ 치의 측정치를 일반화하고 있습니다. 즉, 디바이스 XYZ 의 값이라고 하는 용어는, 현재의 CIE 추천 계산을 사용하고 있는 디바이스를 측정한 XYZ 치를 나타내는데 사용되고 있다고 하는 것입니다.
디바이스 XYZ 치와 PCS XYZ 치와의 사이에 변환하면(자), CIE 비색치에 의해 표현되고 있는, 디바이스의 칼라 스페이스와 PCS 간에서의 변환에 대응한 이 메소드로 돌려주어집니다. 이 처리에는 다양한 요인이 있습니다만, 그 중에는 그다지 중요하지 않은 것도 있습니다. 무엇보다 중요한 것은, 디바이스의 흰색점과 PCS 의 흰색점과의 차이를 처리하는데 행해지는 조정입니다. 이것을 실시하는 수많은 기술이 있어, 현재의 연구의 테마로서 논쟁을 하고 있습니다. 공통되어 사용되는 메소드에는, XYZ 슬캘링, von Kries 변환, 및 Bradford 변환등이 있습니다. 적절한 메소드는 어플리케이션 마다 다릅니다.
무엇보다 간단한 메소드는, XYZ 슬캘링입니다. 이 메소드에서는, 모든 XYZ 디바이스치는 PCS XYZ 치에 변환됩니다. PCS 흰색점 (D50)의 해당 디바이스의 흰색점에 대한 비율을 XYZ 디바이스치에 곱셈해 변환합니다.
Xd, Yd, Zd 는, 디바이스 XYZ 의 값 Xdw, Ydw, Zdw 는, 디바이스 XYZ 의 흰색점의 값 Xp, Yp, Zp 는, PCS XYZ 의 값 Xd50, Yd50, Zd50 는, PCS XYZ 의 흰색점의 값 Xp = Xd * (Xd50 / Xdw) Yp = Yd * (Yd50 / Ydw) Zp = Zd * (Zd50 / Zdw)
PCS 로부터 디바이스에의 변환은 이러한 식을 역전해 실시합니다.
Xd = Xp * (Xdw / Xd50) Yd = Yp * (Ydw / Yd50) Zd = Zp * (Zdw / Zd50)
ICC 프로파일 형식 사용의 미디어흰색점태그는, 디바이스흰색점과 같지는 않습니다. 미디어흰색점태그는, PCS 치로 표시되어 광원아래에서 측정되는 경우에, 디바이스 광원의 XYZ 와 디바이스 미디어의 XYZ 의 차이를 표시하는데 사용됩니다. 디바이스흰색점은, 그 디바이스로 표시되는 흰색점에 대응하는 디바이스 XYZ 치로서 표시됩니다. 예를 들어, RGB 칼라 (1.0, 1.0, 1.0)를 sRGB 디바이스로 표시하면(자), 디바이스 XYZ 의 측정치는 D65 가 됩니다. 이것은, sRGB 디바이스의 ICC 프로파일 형식에서 나타내는 미디어흰색점태그의 XYZ 치와 같지는 않습니다.
ColorSpace
내의 toCIEXYZ
colorvalue
- 이 ColorSpace 의 성분수와 적어도 같은 길이의
float 배열
ArrayIndexOutOfBoundsException
- 배열의 길이가,
이 ColorSpace 의 성분수보다 작은 경우public float[] fromCIEXYZ(float[] colorvalue)
이 메소드는, ICC 스펙으로 정의되고 있는 상대색도 측정을 사용해 칼라치를 변환합니다. 즉, 이 메소드가 취하는 XYZ 의 인수치는 CS_CIEXYZ 칼라 스페이스의 D50 흰색점을 기준으로 해 표시됩니다. 이 표현은, 입력 칼라 스페이스로부터 CS_CIEXYZ 영역에, 다음에 출력 칼라 스페이스에 변환되는, 2 스텝의 칼라 변환 처리에 대해 편리합니다. 이 메소드가 돌려주는 칼라치는, 색도계로 측정할 경우에 메소드에게 건네지는 XYZ 치를 생성하는 칼라치가 아닙니다. 현재 CIE 추천의 계산방법을 사용한 측정치에 대응하는 XYZ 치를 계산 끝난 경우는, 그 값이 이 메소드에게 건네지기 전에 D50 상대치로 변환할 필요가 있습니다. 이하의 패러그래프로 이 내용에 대해 자세하게 설명합니다.
ICC 기준에서는, 1 개의 디바이스로부터 다른 디바이스에 색을 변환하기 위한 기구로서 디바이스에 의존하지 않는 칼라 스페이스 (DICS)를 사용합니다. 이 아키텍쳐(architecture)에서의 색의 변환은, 전송원디바이스의 칼라 스페이스로부터 ICC DICS 에, 다음에 이 ICC DICS 로부터 출력처의 칼라 스페이스로 행해집니다. ICC 기준은, 디바이스의 칼라 스페이스와 ICC DICS 의 사이에 행해지는 변환을 포함한 디바이스 프로파일을 정의합니다. 전송원디바이스의 디바이스대 DICS 변형 프로파일을, 출력처 디바이스의 DICS 대 디바이스 변형 프로파일에 접속해, 소스 디바이스의 색으로부터 출력처 디바이스의 색에 전체적으로 변환합니다. 따라서, ICC DICS 는 공통되어 프로파일 접속 영역 (PCS)이라고 보여집니다. toCIEXYZ 메소드와 fromCIEXYZ 메소드로 사용되는 칼라 스페이스는, ICC 프로파일 형식 스펙이 정의하는 CIEXYZ PCS 입니다. 이것은 또, ColorSpace.CS_CIEXYZ 가 표현하는 칼라 스페이스와 같습니다.
색의 XYZ 치는, 어느 흰색점을 기준으로 해 자주(잘) 표현됩니다. XYZ 치의 실제의 의미는, 그 값을 보관 유지하는 흰색점을 모른다고 이해할 수 없습니다. 이것은, 상대색도 측정으로서 알려져 있습니다. PCS 는 D50 의 흰색점을 사용하고 있으므로, PCS 의 XYZ 치는 D50 를 기준으로 하고 있습니다. 예를 들어, PCS 의 흰색점이 D50 를 기준으로 한 XYZ 치를 가진다고 하면(자), X=. 9642, Y=1. 000, Z=0. 8249 가 되도록(듯이) 정의됩니다. 이 흰색점은, 그래픽 아트의 어플리케이션으로 공통되어 사용됩니다만, 다른 어플리케이션에서는, 이 흰색점 이외의 것이 자주 사용됩니다.
프린터나 모니터등의 디바이스의 색의 특성을 정량화하기 위해서, 특정의 디바이스의 색에 XYZ 치의 측정치를 일반화하고 있습니다. 즉, 디바이스 XYZ 의 값이라고 하는 용어는, 현재의 CIE 추천 계산을 사용하고 있는 디바이스를 측정한 XYZ 치를 나타내는데 사용되고 있다고 하는 것입니다.
디바이스 XYZ 치와 이 메소드가 인수로서 취하는 PCS XYZ 치와의 사이에 변환하면(자), CIE 비색치에 의해 표현되고 있는, 디바이스의 칼라 스페이스와 PCS 간에서의 변환에 대응합니다. 이 처리에는 다양한 요인이 있습니다만, 그 중에는 그다지 중요하지 않은 것도 있습니다. 무엇보다 중요한 것은, 디바이스의 흰색점과 PCS 의 흰색점과의 차이를 처리하는데 행해지는 조정입니다. 이것을 실시하는 수많은 기술이 있어, 현재의 연구의 테마로서 논쟁을 하고 있습니다. 공통되어 사용되는 메소드에는, XYZ 슬캘링, von Kries 변환, 및 Bradford 변환등이 있습니다. 적절한 메소드는 어플리케이션 마다 다릅니다.
무엇보다 간단한 메소드는, XYZ 슬캘링입니다. 이 메소드에서는, 모든 XYZ 디바이스치는 PCS XYZ 치에 변환됩니다. PCS 흰색점 (D50)의 해당 디바이스의 흰색점에 대한 비율을 XYZ 디바이스치에 곱셈해 변환합니다.
Xd, Yd, Zd 는, 디바이스 XYZ 의 값 Xdw, Ydw, Zdw 는, 디바이스 XYZ 의 흰색점의 값 Xp, Yp, Zp 는, PCS XYZ 의 값 Xd50, Yd50, Zd50 는, PCS XYZ 의 흰색점의 값 Xp = Xd * (Xd50 / Xdw) Yp = Yd * (Yd50 / Ydw) Zp = Zd * (Zd50 / Zdw)
PCS 로부터 디바이스에의 변환은 이러한 식을 역전해 실시합니다.
Xd = Xp * (Xdw / Xd50) Yd = Yp * (Ydw / Yd50) Zd = Zp * (Zdw / Zd50)
ICC 프로파일 형식 사용의 미디어흰색점태그는, 디바이스흰색점과 같지는 않습니다. 미디어흰색점태그는, PCS 치로 표시되어 광원아래에서 측정되는 경우에, 디바이스 광원의 XYZ 와 디바이스 미디어의 XYZ 의 차이를 표시하는데 사용됩니다. 디바이스흰색점은, 그 디바이스로 표시되는 흰색점에 대응하는 디바이스 XYZ 치로서 표시됩니다. 예를 들어, RGB 칼라 (1.0, 1.0, 1.0)를 sRGB 디바이스로 표시하면(자), 디바이스 XYZ 의 측정치는 D65 가 됩니다. 이것은, sRGB 디바이스의 ICC 프로파일 형식에서 나타내는 미디어흰색점태그의 XYZ 치와 같지는 않습니다.
ColorSpace
내의 fromCIEXYZ
colorvalue
- 적어도 3 의 길이를 가지는 float 배열
ArrayIndexOutOfBoundsException
- 배열의 길이가
3 보다 작은 경우public float getMinValue(int component)
ColorSpace
내의 getMinValue
component
- 성분 인덱스
IllegalArgumentException
- 성분이 0 보다 작은지,
numComponents - 1 보다 큰 경우public float getMaxValue(int component)
ColorSpace
내의 getMaxValue
component
- 성분 인덱스
IllegalArgumentException
- 성분이 0 보다 작은지,
numComponents - 1 보다 큰 경우
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.