Преобразовать изображение в формат Google WebP , он сэкономит вам много байтов, см. следующие две статьи, которые вы также можете преобразовать webP в JPG / PNG / GIF, что угодно на стороне сервера.
Как проверить библиотеку Google WebP и использовать ее в Android в качестве родной библиотеки
Во-первых, вам нужно получить пиксели из растрового изображения.
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
int bytes = bitmap.getByteCount();
ByteBuffer buffer = ByteBuffer.allocate(bytes);
bitmap.copyPixelsToBuffer(buffer);
byte[] pixels = buffer.array();
Затем вы можете получить массив байтов WebP.
int stride = bytes / height;
int quality = 100;
byte[] encoded = libwebp.WebPEncodeRGBA(pixels, width, height, stride, quality);
Test.png (Размер: 106 КБ) [/g3] Test.webp (Размер: 48KB) [/g4]