gpt4 book ai didi

java - 混合两种 ARGB 颜色

转载 作者:太空宇宙 更新时间:2023-11-04 13:50:40 35 4
gpt4 key购买 nike

我正在尝试创建一种方法,将两种 ARGB 颜色(第二个在顶部)混合为 alpha 为 0xFF 的颜色,我可能是盲目的,但经过 30 分钟的谷歌搜索后,我似乎找不到一种方法来做到这一点。而且这个方法必须相当快,因为​​我尝试过的所有其他方法都不起作用(对我来说?),使我的程序从 200FPS 减慢到 40FPS。

例如,如果我执行 mix(0xFF0F1F3F, 0x7FFFFFFF),我会得到浅蓝色,并且 mix(0x7FFFFFFF, 0xFF0F1F3F) 将返回 0xFF0F1F3F,因为它的 alpha 为 0xFF

我当前的代码:

private int mix(int argbA, int argbB) {
int argbC = 0;
// Color mixing code
return argbC;
}

最佳答案

好的,mediationg argb channel 将是

public int mediateARGB(int c1, int c2){
int a1 = (c1 & 0xFF000000) >>> 24;
int r1 = (c1 & 0x00FF0000) >> 16;
int g1 = (c1 & 0x0000FF00) >> 8;
int b1 = (c1 & 0x000000FF) ;

int a2 = (c2 & 0xFF000000) >>> 24;
int r2 = (c2 & 0x00FF0000) >> 16;
int g2 = (c2 & 0x0000FF00) >> 8;
int b2 = (c2 & 0x000000FF) ;

int am = (a1 + a2) / 2;
int rm = (r1 + r2) / 2;
int gm = (g1 + g2) / 2;
int bm = (b1 + b2) / 2;

int m = (am << 24) + (rm << 16) + (gm << 8) + bm;


return m;
}

关于java - 混合两种 ARGB 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30317089/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com