我的项目中有一个 PNG 文件,我想在运行时更改一些值。
ByteArrayOutputStream output = new ByteArrayOutputStream();
try {
InputStream input = getIntro().getAssets().open("image.png");
byte[] tmp = new byte[1024];
int ret = 0;
while ((ret = input.read(tmp, 0, 1024)) >= 0) {
output.write(tmp, 0, ret);
}
} catch (IOException ex) {
System.out.print(ex);
}
byte[] imgArray = output.toByteArray();
imgArray[1000] = (byte) Color.red(Const.SOMEVALUE);
return BitmapFactory.decodeByteArray(imgArray, 0, imgArray.length);
无论我做什么imgArray[1000] = (byte) Color.red(MyApplication.COLOR_BOARD_BG)
,我都会得到一个空图像。如果我不使用该行并手动修改字节数组就可以了,但是我更改的任何内容(在标题或正文中)都没有不同 = 空白图像。
实际上,我尝试修改调色板信息,但作为示例,我更改了第 1000 个元素,它是图像数据中的某个值。