Hi!
ich habe ein Problem, und zwar möchte eine Sepia Farbtabelle erstellen. (3 Arrays für die RGB Werte mit jeweils 256 einträgen)
So soll sie aussehen:
Index-----R----G----B
0----------0----0----0
...
66-------122--66--20
...
255------255-255-255
Die Terme sollen linear entwickelt werden, also habe ich die Formeln:
R= 122 + (i/255) * (255-122)
G= 66 + (i/255) * (255-66)
B= 20 + (i/255) * (255-20)
Die Werte sollen natürlich auf Integer Werte gerundet werden, und alles >255 soll auf 255 gesetzt werden.
Meine Schleife sieht so aus:
Allerdings, wenn ich sie laufen lasse, krieg ich folgendes:
R[0]=R[1]=...=R[254]=112
R[255]=255
analog mit den anderen Werten. Was ist denn daran falsch? Anscheinend setzt er i/255 = 0 für i != 255.
Kann mir wer helfen? Hab auch schon versucht als double iwie zu casten, aber die 3 Arrays R[],G[],B[] sollen shorts sein.
Wäre toll, wenn mir wer helfen könnte.
Grüße!
ich habe ein Problem, und zwar möchte eine Sepia Farbtabelle erstellen. (3 Arrays für die RGB Werte mit jeweils 256 einträgen)
So soll sie aussehen:
Index-----R----G----B
0----------0----0----0
...
66-------122--66--20
...
255------255-255-255
Die Terme sollen linear entwickelt werden, also habe ich die Formeln:
R= 122 + (i/255) * (255-122)
G= 66 + (i/255) * (255-66)
B= 20 + (i/255) * (255-20)
Die Werte sollen natürlich auf Integer Werte gerundet werden, und alles >255 soll auf 255 gesetzt werden.
Meine Schleife sieht so aus:
Code:
for (int i; i<256; i++) {
R[i] = (short) (112+(i/255)*(255-112));
G[i] = (short) (66+(i/255)*(255-66));
B[i] = (short) (20+(i/255)*(255-20));
}
Allerdings, wenn ich sie laufen lasse, krieg ich folgendes:
R[0]=R[1]=...=R[254]=112
R[255]=255
analog mit den anderen Werten. Was ist denn daran falsch? Anscheinend setzt er i/255 = 0 für i != 255.
Kann mir wer helfen? Hab auch schon versucht als double iwie zu casten, aber die 3 Arrays R[],G[],B[] sollen shorts sein.
Wäre toll, wenn mir wer helfen könnte.
Grüße!