我正在尝试更改位图图像中某些像素的颜色。当我从可绘制文件夹中更改位图图像数组中像素的颜色时,它会在不需要的不同颜色周围留下黑色边框。没有黑色边框怎么办?
我尝试了下面的方法,它留下了黑色边框:
bitmap = bitmap_.copy(bitmap_.getConfig(), true);
int[] pixels = new int[bitmap.getHeight() * bitmap.getWidth()];
bitmap.getPixels(pixels, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
for(int i = 0; i < pixels.length; i++) {
if(pixels[i] == Color.rgb(120, 120, 120)) {
pixels[i] = Color.RED;
} else
if(pixels[i] == Color.rgb(90, 90, 90)) {
pixels[i] = Color.GREEN;
} else
if(pixels[i] == Color.rgb(60, 60, 60)) {
pixels[i] = Color.RED;
} else
if(pixels[i] == Color.rgb(30, 30, 30)) {
pixels[i] = Color.GREEN;
} else
if(pixels[i] == Color.rgb(0, 0, 0)) {
pixels[i] = Color.RED;
} else {
pixels[i] = Color.YELLOW; // Should never fire
}
}
bitmap.setPixels(pixels, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
输出中不应有黄色像素,因为图像仅包含0、0、0或30的倍数(最高120)的像素。保存时,它不应是抗锯齿的。但是,您可以看到有黄色像素。或者,如果我不重新着色,它们就会变黑。
答案 0 :(得分:0)
将位图放置到drawable-nodpi文件夹中可防止Android在运行时按比例放大它们,这会导致抗锯齿。