我需要开发一个可以实时更改图像像素颜色的函数,我目前编写的这部分代码似乎可以部分起作用
private void changePixelsColor() {
try {
tileView.buildDrawingCache(true);
tileView.setDrawingCacheEnabled(true);
int height = tileView.getDrawingCache().getHeight();
int width = tileView.getDrawingCache().getWidth();
int[] pixelNumber = new int[height * width];
tileView.getDrawingCache().getPixels(pixelNumber, 0, width, 0, 0, width, height);
for (int i = 0; i < pixelNumber.length; i++) {
if (String.valueOf(pixelNumber[i]).length() > 2) {
String hexColor = "#" + Integer.toHexString(pixelNumber[i]).substring(2);
if (hexColor.compareToIgnoreCase("#f0f1f0") == 0) {
pixelNumber[i] = Color.RED;
}
}
}
tileView.getDrawingCache().setPixels(pixelNumber, 0, width, 0, 0, width, height);
File file = new File(MYPATH);
FileOutputStream out = new FileOutputStream(file);
Bitmap mappedCar = Bitmap.createBitmap(tileView.getDrawingCache());
mappedCar.compress(Bitmap.CompressFormat.JPEG, 100, out);
mappedCar.recycle();
out.flush();
out.close();
tileView.setDrawingCacheEnabled(false);
tileView.destroyDrawingCache();
} catch (Exception e) {
}
}
具体来说,我正在使用“ TileView”库向用户显示图像(简化说明),在代码的特定部分中,我需要扫描图像的所有像素,并替换一些像素(例如#f0f1f0带有红色)。
目前,我可以检索像素图,并为每个像素了解它是什么颜色。我不能做的就是实时更改图像颜色并将结果保存在文件中。
/ *********************编辑1 ********************* / < / p>