Сжатие Bitmap в Android. Скорость работы

269
04 декабря 2017, 17:14

У меня программа очень часто берет битмап и переводит его в массив байтов, следующим образом:

ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 5, bytes);

И потом я беру массив из bytes. Мне нужно как-то ускорить работу метода compress, подскажите пожалуйста как. Может есть какой-то еще способ перевести bitmap в массив байтов. Но дело в том, что я массив потом еще передаю через Socket, поэтому огромным он не должен быть.

И еще, этот битмап я получаю с image. Вот код:

Image.Plane[] planes = image.getPlanes();
ByteBuffer buffer = planes[0].getBuffer();
int pixelStride = planes[0].getPixelStride();
int rowStride = planes[0].getRowStride();
int rowPadding = rowStride - pixelStride * displayWidth;
bitmap = Bitmap.createBitmap(displayWidth + rowPadding / pixelStride,
                                displayHeight, Bitmap.Config.ARGB_4444);
bitmap.copyPixelsFromBuffer(buffer);

По этому если кто-то знает, может сам экземпляр Image можно передать как-то, чтобы времени много не занимало, то скажите пожалуйста

READ ALSO
@ManyToOne работает не так, как ожидалось

@ManyToOne работает не так, как ожидалось

ПриветСама ассоциация работает правильно, но не сохраняется author_id у поста

244
двумерный массив в рекурсивном классе java

двумерный массив в рекурсивном классе java

есть заполненный числовой двумерный массив А[N][W] (по условию верхняя строка нули, а справа внизу максимум) и вектор w[N], и требуется следуя...

241
Стилизация андроид Приложения

Стилизация андроид Приложения

В приложения программно (Java коде) вывожу несколько LinearLayoutНе как не могу поставить программно этому LinearLayout фон имеющего drawable

298
Не завершается выполнение Java программы

Не завершается выполнение Java программы

Есть такой простой код с потоками:

220