【发布时间】:2015-01-13 07:36:43
【问题描述】:
欢迎回答我在 stackoverflow.com 上的第一个问题 :)
我正在尝试在 Android 应用中反转位图的特定颜色。
这个想法是为儿童故事提供夜间模式阅读。
故事页面色彩丰富,包括文字..
当我以正常模式加载图像时;它将按原样显示。
但是当用户激活夜间模式时(在阅读过程中按下按钮)我想反转图像的颜色。
但不是所有颜色,只有任何黑色像素要反转变为白色,,, 并保持其他颜色不变,,,,
下面是我想要做的一个插图(上半部分是反转所有颜色,,,我想实现下半部分的插图): 我用了下面的代码,,,但是抗锯齿的黑色像素仍然没有很好地反转!!
//Code snipet
Bitmap copy = myBitmap.copy(myBitmap.getConfig(), true);
int length = copy.getWidth() * copy.getHeight();
int[] array = new int[length];
copy.getPixels(array,0,copy.getWidth(),0,0,copy.getWidth(),copy.getHeight());
for (int i=0;i<length-(length/10);i++){
//trying to overcome text anti-aliasing
if ( (array[i] & 0x00FFFFFF) <= 0x00222222)
{
array[i] = 0xffffffff;
}
}
copy.setPixels(array,0,copy.getWidth(),0,0,copy.getWidth(),copy.getHeight());
我想要反转颜色的实际示例图像
【问题讨论】:
-
谢谢,我已经用过这种方法了,效果很好;但它不适用于抗锯齿图形:(
如果有使用 setColorFilter(ColorMatrixColorFilter(float[])) 的解决方案,那就完美了!