У меня есть файл 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-й элемент, который является некоторым значением в данных изображения.