Java: преобразование растрового изображения в байтовый массив
При попытке преобразовать растровый объект в байтовый массив с помощью предоставленного кода пользователи могут столкнуться с проблема, из-за которой все байты в буфере остаются равными 0 после вызова copyPixelsToBuffer(). Несмотря на неизменность растрового изображения, возвращаемого с камеры, это не должно влиять на процесс копирования.
Потенциальная основная причина:
Фрагмент кода использует класс ByteBuffer для выделения памяти и копирования растрового изображения. пикселей в буфер. Однако он напрямую обращается к базовому буферу без правильной установки его смещения. Это может привести к тому, что метод get() вернет только 0 значений.
Решение:
Чтобы устранить эту проблему, рассмотрите возможность использования следующего подхода:
Bitmap bmp = intent.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
bmp.recycle();
В этом улучшенном коде:
Используя этот подход, вы можете эффективно преобразовать объект Bitmap в массив байтов без возникла проблема с переполнением буфера.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3