Android, Kompresowanie obrazu

Wysyłam obraz przez sieć za pośrednictwem sieci Wi-Fi lub sieci komórkowej, aby zapisać go na serwerze i ponownie pobrać. Zrobiłem to, ale ze względu na rozmiar zdjęć zrobionych przez aparat, to sprawia, że ​​moja aplikacja jest powolna, żeby podkreślić, że otwieram galerię i robię zdjęcia stamtąd i nie robię zdjęcia bezpośrednio z aplikacji. Zauważyłem, że obrazy z WhatsApp pobrane z aparatu i galerii zostały skompresowane do około. 100kb.

W tej chwili mój kod pobiera plik i konwertuje go na bajty, a następnie wysyła. Oto metoda pobierania pliku i konwertowania go na bajty.

<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>

Moje pytanie brzmi: w jaki sposób mogę skompresować mój obraz przed wysłaniem? Nie potrzebuję też obrazu, aby zachować dużą liczbę pikseli, ponieważ gdy aplikacja używa obrazu, zajmie tylko połowę ekranu urządzenia.

Dziękujemy za pomoc.

questionAnswers(3)

yourAnswerToTheQuestion