Operações bit a bit - Como alterar a cor existente?

Eu li em operadores bitwise (& | ^) e entendo que se eu fizesse:

alpha = 0xFF000000 >> 24 ;
blue = 0xFF0000FF & 0x000000FF;
red = 0xFFFF0000>>16 & 0x000000FF;
green = 0xFF00FF00>>8 & 0x000000FF;

então eu posso mascarar as outras cores e apenas ter componentes vermelhos ou azuis (etc ...) e se eu fosse fazer

int color = alpha | blue | red | green;

então eu reconstruo a cor novamente, por assim dizer. O que eu estou curioso é se eu queria criar uma interpolação bilinear entre duas cores em Java. Como eu iria construí-lo? Gostaria de começar com a cor verde padrão (0xFF00FF00) e terminar com preto (0xFF000000), as cores no meio seriam alteradas de verde para verdes mais escuros até que, eventualmente, ficasse preto. Eu acho que eu teria que fazer algo onde eu criei um bufferedImage que começa como verde no topo e, em seguida, talvez criar um loop for que leia a cor do pixel anterior e, em seguida, mude algo até que uma nova versão da cor anterior é criado e assim por diante. Infelizmente eu não tenho certeza de como implementar isso, porque eu entendo operações bitwise e mudanças na teoria, mas não tenho certeza de como aplicá-las para essa finalidade. Qualquer ajuda seria muito apreciada! Agradeço antecipadamente!