我对bit操作很陌生,我想用它做以下几件事:
我需要一个倒置颜色的argb代码为我的程序,如红色变成青色或白色变成黑色。通过对photoshop的实验,我发现你必须计算255 -红色,255 -绿色和255 -蓝色。所以这个可能是这样的:
int getInversed(int argb) {
Color old = new Color(argb);
Color negative = new Color(255 - old.getRed(), 255 - old.getGreen(), 255 - old.getBlue(), old.getAlpha());
return negative.getRGB();
}现在我猜到,如果将红色、绿色和蓝色的值作为8位bytes,您可以简单地用~操作符对它们进行逆以得到相同的结果。
但我无法反演整个argb代码,因为这也会逆alpha,并且我希望alpha不受影响:
public int getInversed(int argb) {
return ~argb; //inverses alpha as well
}那么,我如何用位操作来反演argb代码,而忽略alpha部分呢?
发布于 2017-10-28 15:46:40
https://stackoverflow.com/questions/46991486
复制相似问题