я нашел эту функцию в Интернете, что я применять на каждом пикселе двух растровых изображений, для смешивания:альфа на функцию смеси пикселей
private static int hardlight(int in1, int in2) {
float image = (float)in2;
float mask = (float)in1;
return ((int)((image < 128) ? (2 * mask * image/255):(255 - 2 * (255 - mask) * (255 - image)/255)));
}
Но я также необходимо регулировать интенсивность смешивания маски, так что я нужно применить альфа к нему, но я понятия не имею, как это сделать.
Я попробовал этот метод на http://www.pegtop.net/delphi/articles/blendmodes/opacity.htm, что я перевел на Java, как это:
private static int opacity(int a, int b, float o) {
return (int) (o * hardlight(a,b) + (255 - o) * a);
}
Но результат был мусор со всеми фантастическими цветами. У меня нет большого опыта работы с растровыми манипуляциями, так может ли кто-нибудь мне помочь?
http://stackoverflow.com/questions/4605325/blending-pixels-from-two-bitmaps это может быть помочь полной – Triode
Спасибо, но я уже прочитал, что мои растровые изображения уже находятся в режиме ARGB_8888. –