Eu provavelmente usaria uma imagem de cor única (por exemplo, seu sprite de anotações) com canal alfa e depois coloriria a imagem inteira com sua cor de base. Então, algo como na imagem a seguir ( do wikimedia commons ):
Se sua cor fosse vermelha, você coloriria a nota (todas as partes pretas) com o mesmo vermelho. Além disso, você precisará de uma imagem em escala de cinza com o sombreamento da nota. Em seguida, combine o sombreamento com a cor plana usando modos de mesclagem como Multiply e / ou Screen .
Outra abordagem, provavelmente mais simples, seria apenas ter uma imagem em escala de cinza na qual você multiplicaria cada componente de cor pela cor selecionada. Portanto, se você tiver um valor cinza 0.5
e vermelho RGB(1.0, 0.0, 0.0)
, isso resultaria emRGB(0.5, 0.0, 0.0)
pixel fornecido.
Atualização: Aqui está um exemplo de imagem para ilustrar o que quero dizer com os modos de mesclagem:
É claro que você pode usar a camada de sombra se não precisar dos destaques (que é basicamente o mesmo que a abordagem mais simples mencionada acima).