Этот вопрос может быть немного запутанным, но здесь мы идем!Java RGB Манипуляция с растровыми изображениями
Итак, я смотрел Notch, кодирующий игру, и он сделал что-то интересное. Он сделал класс растрового изображения, где он хранил каждый пиксель в массиве. (int array). Затем мне пришла в голову идея поиграть с растровыми изображениями, а потом у меня появилась идея манипулировать/изменять R, G и B растрового изображения.
Итак, как я пытался сделать это было так:
int rmod = 100;
int gmod = 100;
int bmod = 100;
for (int i = 0; i < 64*64; i++) {
int color = testBitmap.pixels[i];
int r = color >> 16;
int g = color >> 8;
int b = color;
r = (r/100)*rmod;
g = (g/100)*gmod;
b = (b/100)*bmod;
testBitmap.pixels[i] = r+b+g;
}
Так что да, идея заключается в том, что rmod, GMOD и BMOD работает как% от RG B. Таким образом, когда все они при 100, битмап отображается нормально, это идея. И затем, скажем, если вы измените rmod на 150, R будет на 50% «сильнее».
Теперь я знаю, что здесь я делаю неправильно. Я думаю, что int r, g и b верны. (хотя я действительно не понимаю, что такое «>>». Я знаю, что он меняет байты или что-то в этом роде, но на самом деле я их не получаю.) Получив rg и b, я получаю 1% от них, и умножьте их на проценты, объявленные в rmod, gmod и bmod. Тогда, я считаю, что я делаю что-то совершенно неправильное в строке, где я устанавливаю новый RGB текущего пикселя. (testBitmap.pixels [i] = r + g + b;)
Не совсем уверен, как это сделать. Если кто-нибудь попытается объяснить, как работает «>>», и почему он работает в этой ситуации, а также как управлять RGB через rmod, gmod и bmod, я был бы так счастлив!
Возможно, я предоставил слишком мало информации, поэтому, если вам нужно посмотреть классы и т. Д., Я тоже могу разместить их здесь!
Спасибо!