Problemas com BufferedImage e ColorSpace

1 resposta
louds

Meu problema é simples, eu tenho um BufferedImage e quero poder ler os pixels dele no formato YCbCr sem ter que sambar muito.

Minha atual tentativa:

ColorSpace space = ColorSpace.getInstance(ColorSpace.TYPE_YCbCr);
        ComponentColorModel model = new ComponentColorModel(space, false, false, Transparency.OPAQUE, DataBuffer.TYPE_DOUBLE);
        WritableRaster raster = model.createCompatibleWritableRaster(8, 8);
        this.image.copyData(raster); //this.image -> BufferedImage 8x8 em sei lá qual ColorModel
        //pronto! só ler do meu raster

Eu imaginei que isso ia funcionar, mas falha miseravelmente da seguinte forma:

WTF?? Como assim esse color space é desconhecido? Por que raios existe a constante maldita? Pra me fazer de trouxa?

E agora, alguem tem idéia de como resolver esse embrólio? Antes de responder, já digo, eu NÃO quero ter que primeiro converter pra RGB e depois pra YCbCr manualmente, quero usar a sacana da API do java.

Ahh, quase ia esquecendo
java -version -> 1.5.0-b64

1 Resposta

louds

Bom, depois de muito apanhar com color spaces e toda essa coisa horrenda do AWT, cheguei a conclusão que quanto mais longe ficar dessa bomba, melhor.
Mais facil implementar na mão a que tentar entender qual a lógica tosca dessa API bizarra.

Criado 21 de fevereiro de 2005
Ultima resposta 21 de fev. de 2005
Respostas 1
Participantes 1