IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Compression d'image Bitmap


Sujet :

Android

  1. #1
    Membre averti Avatar de Fooshi
    Homme Profil pro
    ICD
    Inscrit en
    Juin 2002
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ICD
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 507
    Points : 359
    Points
    359
    Par défaut Compression d'image Bitmap
    Bonjour,
    Je souhaite faire de la compression d'image à partir de ce que je récupère de la caméra.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Bitmap originalBitmap = (Bitmap)data.getExtras().get("data");
    dataUri = getImageUri(mUiInteractor.getContext(), originalBitmap);                      
     
    Bitmap compressedBitmap = codec(originalBitmap, Bitmap.CompressFormat.JPEG, 3);
     
    private static Bitmap codec(Bitmap src, Bitmap.CompressFormat format, int quality) {
     
            ByteArrayOutputStream os = new ByteArrayOutputStream();
            src.compress(format, quality, os);
            RequestBody result = RequestBody.create(MediaType.parse("image/jpg"),os.toByteArray());
     
            byte[] array = os.toByteArray();
            return BitmapFactory.decodeByteArray(array, 0, array.length);
        }
    L'image originalBitmap et compressedBitmap lorsque je les logs ont la meme taille Je ne comprend pas pourquoi.
    Est ce la bonne méthode ?
    Merci d'avance

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Parce qu'une bitmap est.... une bitmap... soit une entrée par pixel, cette entrée faisant 1, 2 ou 3 octets (selon le format de la bitmap... en général, R8G8B8 = 3 octets, voir 4).

    Le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        src.compress(format, quality, os);
    Va bien effectivement compresser la bitmap dans le ByteArray, c'est alors un flux compressé (et plus une bitmap).

    Mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        byte[] array = os.toByteArray();
        return BitmapFactory.decodeByteArray(array, 0, array.length);
    Va décoder le flux compresser et recréer la même bitmap (c'est d'ailleurs ce qui est attendu en général )
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. Compression DCT sur une image bitmap
    Par Supr3M dans le forum C
    Réponses: 8
    Dernier message: 13/01/2010, 19h29
  2. Comment changer l'image Bitmap en fond d'écran du bureau ?
    Par Maddelphi dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 23/06/2004, 19h57
  3. Afficher et comparer 2 images bitmap
    Par leplusnul dans le forum MFC
    Réponses: 2
    Dernier message: 12/01/2004, 16h54
  4. generer une image bitmap a partir d'une scene OGL
    Par FreshLog dans le forum OpenGL
    Réponses: 4
    Dernier message: 01/07/2003, 11h29
  5. Lecture d'une image bitmap
    Par Geronimo dans le forum x86 32-bits / 64-bits
    Réponses: 18
    Dernier message: 28/06/2002, 12h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo