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 :

Extraire une zone d'une bitmap


Sujet :

Android

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Points : 83
    Points
    83
    Par défaut Extraire une zone d'une bitmap
    Hello à tous

    Comme écrit dans le titre, je souhaite extraire une zone carrée précise d'une bitmap existante. Pour cela, je possède bien entendu le point top left et la hauteur longueur de mon carré.

    J'ai essayer de faire ceci avec cette méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static Bitmap createBitmap (Bitmap source, int x, int y, int width, int height)
    Mais ça n'a pas l'air de fonctionner...

    Si quelqu'un à une solution, elle est la bienvenue

    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 141
    Points : 177
    Points
    177
    Par défaut
    ça fonctionne bien cette méthode : vérifie tes arguments !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Points : 83
    Points
    83
    Par défaut
    Après recherche, je me demande si ce n'est pas la classe qui est la plus adapté .. ?

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Tout dépends exactement de ce que tu veux faire.

    Mais ça n'a pas l'air de fonctionner...
    Après cette fonction marche parfaitement.

    Est ce que tu pourrais nous montrer comment tu l'a utiliser ?
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Points : 83
    Points
    83
    Par défaut
    Bonjour et merci de vos réponses.

    En fait, je ne sais pas si je me suis bien fait comprendre, mais je recherche à extraire une zone rectangulaire d'une bitmap. Par exemple, si j'ai une bitmap source de 300 x 500, et bien je cherche à extraire une zone de 100 x 120 mettons, avec left = 50, top = 60, right = 150 (50 + 100) et bottom = 180 (120 + 60)

    Pour ce faire, j'ai utilisé la fonction comme ceci fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    res = Bitmap.createBitmap(imageSource, 50, 60, 150, 180);
    Ceci me provoque une exception (dû probablement au fait que les valeurs de size entrées ne correspondent pas à celles de imageSource, car cette fonction ne sert pas à extraire une zone, vous confirmez ?) ... J'ai supposé donc que ce n'était pas la bonne méthode.

    Ensuite je me suis penché sur BitmapRegionDecoder qui à l'air de fonctionner mais le soucis est que le résultat est beaucoup trop lent ...

    Actuellement, je regarde de plus près la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public boolean compressToJpeg(android.graphics.Rect rectangle, int quality, java.io.OutputStream stream);
    qui semble efficace et bien plus rapide.

    Mon seul soucis et que ça fonctionne sur une instance de YuvImage et que moi j'aimerai bosser directement sur ma Bitmap.

    Donc selon vous, existe t-il une sorte de fonction équivalent mais qui fonctionnerait sur une instance de bitmap (sans avoir à la convertir en YuvImage et d'ailleurs, peut-on le faire ?) ?

    Thanks

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Points : 83
    Points
    83
    Par défaut
    ok j'ai trouvé (ouf) !

    Il fallait effectivement bien utiliser cette méthode mais il y avait un problème de rotation je pense... Du coup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Bitmap.createBitmap(bmp, left, top, width(), height(), matrix, matrix.postRotate(degree));
    et voila

    Merci encore pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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