Please note that this translation of the specification is the result of a java.net community project ( https://jdk5-api-pt-br.dev.java.net/ ). The official version of the specification is the US English language version which can be found at http://java.sun.com/j2se/1.5.0/docs/api/. In case of disputes, the authoritative version of the specification is the original, English document.
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.awt.color.ColorSpace
java.awt.color.ICC_ColorSpace
public class ICC_ColorSpace
A classe ICC_ColorSpace é uma implementação da classe abstrata ColorSpace. Esta respresentação de dispositivos independentes e dependentes de espaços de cor é baseada no International Color Consortium Specification ICC.1:2001-12, para formato de arquivo de perfis de cor (ver o href= " http://www.color.org " do http://www.color.org ).
Tipicamente, um Color ou um ColorModel deve ser associado a um perfil ICC em qualquer entrada, tela, ou perfil da saída (ver a especificação ICC). Há outros tipos de perfis de ICC, por exemplo: perfis abstratos, perfis de ligação de dispositivo, e perfis de cor por nomes, que não contêm informação apropriada para representar o espaço de cor de uma determinada cor, de uma imagem, ou de um dispositivo (ver ICC_Profile). Tentar criar um objeto ICC_ColorSpace de um perfil ICC impróprio é um erro.
Os perfis ICC representam transformações do espaço de cor de perfil (por exemplo, um monitor) para um Profile Connection Space (PCS). Os perfis para o intuito de etiquetar imagens ou cores têm PCS que é um dos espaços independentes de dispositivo (um espaço de CIEXYZ e dois espaços de CIELab) definidos na especificação do formato do perfil ICC Profile Format Specification. A maioria dos perfis de interesse têm transformações invertidas ou especificam explicitamente as transformações em ambas as direções. Se um objeto ICC_ColorSpace for usado de uma maneira que requeira uma conversão de PCS para o espaço nativo do perfil, e existir dados inadequados para executar corretamente a conversão, o objeto ICC_ColorSpace produzirá a saída no tipo especificado do espaço de cor (por exemplo TYPE_RGB, TYPE_CMYK, etc.), mas os valores específicos da cor nos dados de saída serão indefinidos.
Os detalhes desta classe não são importantes para simples applets, que desenham em um espaço de cor padrão ou manipulam e exibem imagens importadas com um espaço de cor conhecido. Na maioria das vezes, tais applets necessitariam iniciar um dos espaços de cor padrão através do ColorSpace.getInstance().
ColorSpace,
ICC_Profile,
Serialized Form| Field Summary |
|---|
| Fields inherited from class 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 |
| Constructor Summary | |
|---|---|
ICC_ColorSpace(ICC_Profile profile)
Constrói um novo ICC_ColorSpace de um objeto de ICC_Profile. |
|
| Method Summary | |
|---|---|
float[] |
fromCIEXYZ(float[] colorvalue)
Transforma um valor da cor assumida para estar no espaço de cor de conversão CS_CIEXYZ neste ColorSpace. |
float[] |
fromRGB(float[] rgbvalue)
Transforma um valor da cor assumido para estar no espaço de cor CS_sRGB padrão em um valor deste ColorSpace. |
float |
getMaxValue(int component)
Retorna o valor máximo normalizado do componente da cor para o componente especificado. |
float |
getMinValue(int component)
Retorna o valor mínimo normalizado dos componentes da cor para o componente especificado. |
ICC_Profile |
getProfile()
Retorna o ICC_Profile para esta ICC_ColorSpace. |
float[] |
toCIEXYZ(float[] colorvalue)
Transforma um valor da cor assumido para estar neste ColorSpace em um valor do espaço de cor de conversão CS_CIEXYZ. |
float[] |
toRGB(float[] colorvalue)
Transforma um valor da cor assumido para estar neste ColorSpace em um valor do espaço de cor CS_sRGB padrão. |
| Methods inherited from class java.awt.color.ColorSpace |
|---|
getInstance, getName, getNumComponents, getType, isCS_sRGB |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public ICC_ColorSpace(ICC_Profile profile)
profile - o objeto ICC_Profile especificado
IllegalArgumentException - se o perfil for inapropriado para
representar um ColorSpace.| Method Detail |
|---|
public ICC_Profile getProfile()
public float[] toRGB(float[] colorvalue)
Este método transforma valores de cor usando os algoritmos
projetados para produzir o melhor percentual de equivalência entre
a entrada e saída de cores. A fim de fazer a conversão colorimétrica
de valores de cor, você deve usar o toCIEXYZ, método
deste espaço de cor, para primeiro converter do espaço de cor
de entrada para o espaço de cor CS_CIEXYZ, e usar então o
método fromCIEXYZ, do espaço de cor CS_sRGB, para
converter de CS_CIEXYZ para o espaço de cor de saída.
Veja toCIEXYZ e
fromCIEXYZ para maiores informações.
toRGB in class ColorSpacecolorvalue - um array de números de ponto flutuante com
comprimento de pelo menos o número dos componentes neste ColorSpace.
ArrayIndexOutOfBoundsException - se o comprimento do array não for
de pelo menos o número de componentes deste ColorSpace.public float[] fromRGB(float[] rgbvalue)
Este método transforma valores de cor usando os algoritmos projetados
para produzir o melhor percentual de equivalência entre a entrada e a
saída de cores. A fim de fazer a conversão colorimétrica de valores de
cor, você deve usar o método toCIEXYZ do espaço de cor
CS_sRGB para primeiro converter do espaço de cor de entrada para o
espaço de cor CS_CIEXYZ, e então usar o método fromCIEXYZ
deste espaço de cor para converter de CS_CIEXYZ para o espaço de cor
de saída.
Ver toCIEXYZ e
fromCIEXYZ para maiores informações.
fromRGB in class ColorSpacergbvalue - um array de números de ponto flutuante com comprimento
de pelo menos 3.
ArrayIndexOutOfBoundsException - se o comprimento do array
não for de pelo menos 3.public float[] toCIEXYZ(float[] colorvalue)
Este método transforma valores de cor usando colorimetria relativa, como definido pela ICC Specification. Isto significa que os valores de XYZ retornados por este método são representações relativas ao ponto branco D50 do espaço de cor CS_CIEXYZ. Esta respresentação é útil em um processo de duas etapas de conversão de cor em que as cores são transformadas de um espaço de cor de entrada CS_CIEXYZ, para em seguida, a um espaço de cor de saída. Esta respresentação não é a mesma dos valores XYZ que seriam medidos através de um colorímetro. Uma transformação adicional é necessária para computar os valores XYZ que seriam medidos usando práticas atuais recomendadas pelo CIE. Os parágrafos abaixo explicam isto mais detalhadamente.
Os padrões ICC são dispositivos independentes de espaço de cor (DICS) como o mecanismo para a converção de cor de um dispositivo para qualquer outro. Nesta arquitetura, as cores são convertidas do espaço de cor do dispositivo para ICC DICS e então do ICC DICS para o espaço de cor do dispositivo de destino. O padrão ICC define os perfis de dispositivo que contém as transformações que ocorrerão ao se converter entre o espaço de cor de um dispositivo e o ICC DICS. A conversão total das cores de um dispositivo fonte para as cores de um dispositivo do destino é feita conectando os transformadores do perfil device-to-DICS para o dispositivo fonte. Por esta razão, o ICC DICS é geralmente referciado como o perfil de espaço de conexão (PCS). O espaço de cor usado nos métodos toCIEXYZ e fromCIEXYZ, são os PCS de CIEXYZ definidos pelo ICC Specification. Este é também o espaço de cor representado pelo ColorSpace.CS_CIEXYZ.
Os valores XYZ de uma cor são representados frequentemente como relativo a algum ponto branco, assim o real significado dos valores XYZ não podem ser conhecidos sem saber o ponto branco daqueles valores. Isto é conhecido como colorimetria relativa. Os PCS usam um ponto branco de D50, assim os valoresXYZ dos PCS são realtivos ao D50. Por exemplo, o branco no PCS terá os valores XYZ de D50, que é definido para ser X=.9642, Y=1.000, e Z=0.8249. Este ponto branco é usado geralmente para aplicações em artes gráficas, mas outros são usados frequentemente em outras aplicações.
Para quantificar as características de cor de um dispositivo tais como uma impressora ou um monitor, as medidas dos valores XYZ são feitas tipicamente para cores particulares do dispositivo. Para o proposto nesta discussão, o termo "valores XYZ" do dispositivo são usados para significar os valores XYZ que seriam medidos em um dispositivo de cor usando práticas atuais recomendadas pelo CIE.
A converção entre valores XYZ de dispositivo e valores XYZ do PCS retornados por este método correspondem à converção entre o espaço de cor do dispositivo, representado pelos valores de colorimetria do CIE, e dos PCS. Há muitos fatores envolvidos neste processo, alguns dos quais são completamente sutis. O mais importante, entretanto, é o ajuste feito para esclarecer diferenças entre o ponto branco do dispositivo e o ponto branco dos PCS. Existem muitas técnicas para fazer isto e o assunto é objeto de muitas pesquisas e controvérsias. Alguns métodos geralmente usados são gradações de XYZ, o conversor Von Kries, e o conversor Bradford. O método apropriado para o uso depende de cada aplicação em particular.
O método mais simples é o de gradação de XYZ. Neste método cada valor XYZ do dispositivo é convertido a um valor XYZ de PCS pela multiplicação da relação de ponto branco do PCS (D50) com o ponto branco do dispositivo.
Xd, Yd, Zd são os valores XYZ do dispositivo Xdw, Ydw, Zdw são os valores de ponto branco XYZ do dispositivo Xp, Yp, Zp são os valores XYZ do PCS Xd50, Yd50, Zd50 são os valores de ponto branco XYZ do PCS Xp = Xd * (Xd50 / Xdw) Yp = Yd * (Yd50 / Ydw) Zp = Zd * (Zd50 / Zdw)
A conversão de PCS para o dispositivo será feita pela inversão destas equações:
Xd = Xp * (Xdw / Xd50) Yd = Yp * (Ydw / Yd50) Zd = Zp * (Zdw / Zd50)
Note que o rótulo do ponto branco da mídia em um perfil ICC não é o mesmo que o do ponto branco do dispositivo. O rótulo de ponto branco da mídia é expresso em valores dos PCS e usado para representar a diferença entre o XYZ de iluminação do dispositivo e o XYZ da mídia do dispositivo quando medido sob essa iluminação. O ponto branco do dispositivo é expresso como valores XYZ do dispositivo correspondendo ao branco mostrado pelo dispositivo. Por exemplo, ao mostrar a cor RGB (1.0, 1.0, 1.0) em um dispositivo sRGB, resultará em um valor XYZ medido pelo dispositivo D65. Este não será o mesmo valor XYZ do ponto branco do rótulo da mídia no perfil ICC para um dispositivo sRGB.
toCIEXYZ in class ColorSpacecolorvalue - um array de números de ponto flutuante com comprimento
de pelo menos o número de componentes neste ColorSpace.
ArrayIndexOutOfBoundsException - se o comprimento do array não
for de pelo menos o número de componentes neste ColorSpace.public float[] fromCIEXYZ(float[] colorvalue)
Este método transforma valores de cor usando a colorimetria relativa, como definido pela ICC Specification. Isto significa que os valores do argumento XYZ obtidos por este método são representações relativas ao ponto branco D50 do espaço de cor CS_CIEXYZ. Esta representação é utilizada em um processo de conversão da cor em duas etapas em que as cores são transformadas de um espaço de cor de entrada CS_CIEXYZ e então para um espaço de cor de saída. Os valores da cor retornados por este método não são aqueles que seriam produzidos ao passar os valores XYZ ao método quando medidos por um colorímetro. Se você tiver valores XYZ correspondentes às medidas feitas usando as práticas atuais recomendadas pelo CIE, eles devem ser convertidos aos valores relativos D50 antes de ser passados a este método. Os parágrafos abaixo explicam isto mais detalhadamente.
O padrão ICC utilisa um dispositivo independente de espaço de cor(DICS) como um mecanismo para a conversão de cor de um dispositivo a outro. Nesta arquitetura, as cores são convertidas de um espaço de cor de um dispositivo fonte para o ICC DICS e então do ICC DICS para o espaço de cor de dispositivo de destino. O padrão ICC define os perfis de dispositivo que contêm as transformações que serão convertidas entre o espaço de cor de um dispositivo e do ICC DICS. A conversão total das cores de um dispositivo fonte às cores de um dispositivo do destino é feita conectando-se o transformador do perfil device-to-DICS do dispositivo fonte para o transformador do perfil DICS-to-device do dispositivo de destino. Por esta razão, o ICC DICS é geralmente referenciado para como se estabelecer a conexão com o perfil do espaço (PCS). O espaço de cor usado nos métodos toCIEXYZ e fromCIEXYZ é o CIEXYZ PCS definido pelo ICC Specification. Este é também o espaço de cor representado pelo ColorSpace.CS_CIEXYZ.
Os valores XYZ de uma cor são frequentemente representados como relativos a algum ponto branco, assim o real significado dos valores XYZ não pode ser conhecido sem se saber o ponto branco daqueles valores. Isto é conhecido como colorimetria relativa. Os PCS usam um ponto branco D50, assim os valores XYZ dos PCS são relativos a D50. Por exemplo, branco no PCS terá valores XYZ de D50, os quais são definidos para ser X=.9642, Y=1.000, e Z=0.8249. Este ponto branco é usado geralmente para aplicações em artes gráficas, mas outros são usados frequentemente em outras aplicações.
Para quantificar as características de cor de um dispositivo como uma impressora ou um monitor, as medidas de valores de cor XYZ para dispositivos particulares são feitas tipicamente. Para os propósitos desta discussão, o termo "valores XYZ" do dispositivo é usado para significar que os valores XYZ que seriam medidos das cores do dispositivo usam práticas atuais recomendadas pelo CIE.
Convertendo valores XYZ do dispositivo entre os valores XYZ dos PCS, tomados como argumentos por este método, corresponde a conversão entre o espaço de cor do dispositivo, como representado por valores de colorimetria do CIE, e dos PCS. Existem muitos fatores envolvidos neste processo, alguns dos quais muito sutis. O mais importante, entretanto, é o ajuste feito para esclarecer diferenças entre o ponto branco do dispositivo e do PCS. Há muitas técnicas para fazer isto e é assunto de muitas pesquisas e controvérsias. Alguns métodos geralmente usados são gradações de XYZ, o conversor von Kries, e o conversor Bradford. O método apropriado ao uso depende de cada aplicação em particular.
O método mais simples é o de gradação de XYZ. Neste método cada valor do dispositivo XYZ é convertido a um valor XYZ do PCS pela multiplicação da relação do ponto branco do PCS (D50) com o ponto branco do dispositivo.
Xd, Yd, Zd são os valores XYZ do dispositivo Xdw, Ydw, Zdw são os valores do ponto branco XYZ do dispositivo Xp, Yp, Zp são os valores XYZ do PCS Xd50, Yd50, Zd50 são os valores do ponto branco XYZ do PCS Xp = Xd * (Xd50 / Xdw) Yp = Yd * (Yd50 / Ydw) Zp = Zd * (Zd50 / Zdw)
A conversão do PCS para o dispositivo será feita pela inverção destas equações:
Xd = Xp * (Xdw / Xd50) Yd = Yp * (Ydw / Yd50) Zd = Zp * (Zdw / Zd50)
Note que o rótulo do ponto branco da mídia em um perfil ICC não é o mesmo que o ponto branco do dispositivo. O rótulo do ponto branco da mídia é expresso em valores PCS e usado para representar a diferença entre o XYZ de iluminação do dispositivo e o XYZ do dispositivo da mídia quando medido sob essa iluminação. O ponto branco do dispositivo é expresso como valores XYZ do dispositivo correspondendo ao branco mostrado no dispositivo. Por exemplo, mostrando a cor RGB (1.0, 1.0, 1.0) em um dispositivo de sRGB, resultará em um valor medido do dispositivo XYZ de D65. Este não será o mesmo valor que o do rótulo do ponto branco da mídia no perfil ICC para um dispositivo sRGB.
fromCIEXYZ in class ColorSpacecolorvalue - um array de números de ponto flutuante com comprimento
de pelo menos 3.
ArrayIndexOutOfBoundsException - se o comprimento do array não
for de pelo menos 3.public float getMinValue(int component)
getMinValue in class ColorSpacecomponent - O índice do componente.
IllegalArgumentException - se o componente for menor do que 0 ou
maior do que numComponents - 1.public float getMaxValue(int component)
getMaxValue in class ColorSpacecomponent - O índice do componente.
IllegalArgumentException - se o componente for menor do que 0 ou
maior do que numComponents - 1.
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
Copyright 2006 Sun Microsystems, Inc. Todos os direitos reservados. O uso está sujeito aos termos da licensa.