Android, сжатие изображения

Я отправляю изображение по сети через Wi-Fi или мобильную сеть, чтобы сохранить его на сервере и восстановить. Я сделал это, но из-за размера изображений, снятых камерой, это замедляет работу моего приложения, просто чтобы указать, что я открываю галерею и делаю снимки оттуда, а не снимаю изображение непосредственно из приложения. Я заметил, что изображения из WhatsApp, которые были взяты с камеры и галереи были сжаты до прибл. 100kb.

На данный момент мой код берет файл и преобразует его в байты, а затем отправляет его. Вот метод получения файла и его преобразования в байты.

<code>private void toBytes(String filePath){
    try{
        File file = new File(filePath);
        InputStream is = new BufferedInputStream(new FileInputStream(file));  
        ByteArrayOutputStream buffer = new ByteArrayOutputStream();
        bytes = new byte[(int) filePath.length()];
        int bytes_read;
        while((bytes_read = is.read(bytes, 0, bytes.length)) != -1){
            buffer.write(bytes, 0, bytes_read);
        }
        is.close();               
        bytes = buffer.toByteArray();
    }catch(Exception err){
        Toast.makeText(getApplicationContext(), err.toString(), Toast.LENGTH_SHORT).show();
    }
}
</code>

Итак, мой вопрос: как мне сжать изображение перед отправкой? Также мне не нужно, чтобы изображение сохраняло большое количество пикселей, поскольку, когда приложение использует изображение, оно будет занимать только половину экрана устройства.

Спасибо за любую помощь.

Ответы на вопрос(3)

Ваш ответ на вопрос