Android, de la Compression d'une image

Je vous envoie une image sur le réseau via le wifi ou le réseau mobile pour être stockées dans un serveur (extrait de nouveau. Je l'ai fait, mais en raison de la taille des images prises par la caméra c'est d'en faire mon application lente, juste pour signaler que je suis à l'ouverture de la galerie et de la prise des images à partir de là et de ne pas prendre la photo directement depuis l'application. J'ai remarqué que les images de whatsapp qui ont été prises à partir de l'appareil photo et la galerie ont été compressés à approx. 100kb.

Pour le moment mon code prend un fichier et de les convertir en octets, puis l'envoie. Voici la méthode pour prendre un fichier et de le convertir en octets.

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();
    }
}

Donc ma question est comment pourrais-je aller sur la compression de mon image avant de l'envoyer? Aussi je n'ai pas besoin de l'image à conserver un nombre élevé de pixels que lorsque l'application utilise l'image de ce qu'il ne prendra que la moitié de l'écran périphériques.

Je vous remercie pour toute l'aide apportée.

InformationsquelleAutor Arran | 2012-04-22