Oi gente, eu fiz um método q recebe como parametro uma string contendo 3 valores separados por virgulas. Por exemplo String s= “10,15,35”;
Ai que quero pegar esses valores e tranforma-los em bytes… Como devo fazer isso? O médoto q eu fiz deu o seguinte erro: java.lang.NumberFormatException: Value out of range. Value:“255” Radix:10
Olá, não tenho como fazer o teste aqui, porém pelo que eu li no JavaDoc 1.6
o metodo split de String recebe um Regex, então tente trocar o seu Regex de
Pq recebo a minha paleta de cores apartir de um header de um documento… leio o header como String… e depois tenho q criar tres vetores r,g, b para colocar no construtor do IndexColorModel
A classe Byte varia os valores de -127 até 127. Por isso, é impossível usar o parseBytes dessa forma.
Você deve fazer com o getInteger.
[code]String bytes = str.getBytes(Pattern.quote(","));
int r = Integer.parseInt(bytes[0]);
int g = Integer.parseInt(bytes[1]);
int b = Integer.parseInt(bytes[2]);
Eu recomendo trabalhar com os canais de cor em inteiros mesmo. Assim você pode aplicar saturação nos seus calculos (por exemplo, é comum que multiplicações nos canais de cores gerem valores maiores que 255, que devem se fixar em 255).
Outra opção é trabalhar com a cor normalizada, ou seja, num float com intervalo de 0 até 1.
Usar inteiros também facilita na hora de compor novamente o inteiro de cor. É só uma questão de aplicar diretamente os shifts e combinar as cores com o operador |: