Смешивание цветов и эффект porterduffxfermode

    int color1 = 0xDDfbc2ba;
    int color2 = 0xDD7a6c3e;

    int mixColor = mixTwoColors(color1,color2,0.5f);  


public static int mixTwoColors( int color1, int color2, float amount )
{
    final byte ALPHA_CHANNEL = 24;
    final byte RED_CHANNEL   = 16;
    final byte GREEN_CHANNEL =  8;
    final byte BLUE_CHANNEL  =  0;

    final float inverseAmount = 1.0f - amount;

    int a = ((int)(((float)(color1 >> ALPHA_CHANNEL & 0xff )*amount) +
            ((float)(color2 >> ALPHA_CHANNEL & 0xff )*inverseAmount))) & 0xff;
    int r = ((int)(((float)(color1 >> RED_CHANNEL & 0xff )*amount) +
            ((float)(color2 >> RED_CHANNEL & 0xff )*inverseAmount))) & 0xff;
    int g = ((int)(((float)(color1 >> GREEN_CHANNEL & 0xff )*amount) +
            ((float)(color2 >> GREEN_CHANNEL & 0xff )*inverseAmount))) & 0xff;
    int b = ((int)(((float)(color1 & 0xff )*amount) +
            ((float)(color2 & 0xff )*inverseAmount))) & 0xff;

    return a << ALPHA_CHANNEL | r << RED_CHANNEL | g << GREEN_CHANNEL | b << BLUE_CHANNEL;
}

Этот результат -574974084

Я использую следующие два цвета, чтобы смешать, но почему я получаю отрицательное число? Кроме того, как я могу сделать эффект яркой помады, как на следующей фотографии, используя краску или porterduffxfermode в Android? Пожалуйста, дайте мне несколько предложений. Большое спасибо.

0 ответов

Другие вопросы по тегам