我想要反转黑白图像的颜色并将该反转呈现为动画。 动画应该从白色背景变为黑色(黑色背景白色车),然后恢复为白色(白色背景,黑色车)。 你可以在这里看到图像:
我试着像这样使用ColorMatrixColorFilter:
final ValueAnimator colorAnim = ValueAnimator.ofInt(0, 255);
colorAnim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int color = (int) animation.getAnimatedValue();
float[] NEGATIVE = {
-1.0f, 0, 0, 0, color, // red
0, -1.0f, 0, 0, color, // green
0, 0, -1.0f, 0, color, // blue
0, 0, 0, 1.0f, 1 // alpha
};
v.setColorFilter(new ColorMatrixColorFilter(NEGATIVE));
}
});
但它不会返回默认图像(白色背景,黑色汽车)。 计算不好。 如何计算正确的值?
我试图找到如何做到这一点,但我找不到任何有用的东西。
谢谢!
答案 0 :(得分:0)
你有没有尝试过:
1)从加载的图像中,将两个位图副本创建为变量,例如:bmp_original
和bmp_negative
。
2)Apply the ColorMatrix to the bitmap名为bmp_negative
。
3)创建一个在两个位图之间淡入淡出的函数(或淡化它们的容器)。
这比通过ColorMatrix(错误的工具)尝试恢复原始颜色更好。对于反转颜色,最好使用For
循环来检查和更改每个像素的RGB值。
最后,保留原始副本和原始副本之间的翻转更容易,更有效,而不是尝试重新计算原始颜色(在效果之前已有)。