507 votes

Enregistrez l’image bitmap d’emplacement

Je suis en train de travailler sur une fonction pour télécharger une image à partir d'un serveur web, de les afficher sur l'écran, et si l'utilisateur souhaite conserver l'image, l'enregistrer sur la carte SD dans un dossier précis. Est-il un moyen facile de prendre une image et tout simplement l'enregistrer sur la carte SD dans un dossier de mon choix?

Mon problème est que je peux télécharger l'image, de l'affichage sur l'écran comme une image Bitmap. Le seul moyen que j'ai pu trouver pour enregistrer une image dans un dossier particulier est d'utiliser FileOutputStream, mais qui nécessite un tableau d'octets. Je ne suis pas sûr de la façon de convertir (si c'est le bon sens) de Bitmap de tableau d'octets, de sorte que je peux utiliser un FileOutputStream pour écrire les données.

L'autre option que j'ai, c'est d'utiliser MediaStore :

MediaStore.Images.Media.insertImage(getContentResolver(), bm,
    barcodeNumber + ".jpg Card Image", barcodeNumber + ".jpg Card Image");

Qui fonctionne très bien pour enregistrer sur la carte SD, mais ne vous permet pas de personnaliser le dossier.

970voto

Ulrich Scheller Points 5144
FileOutputStream out = null;
try {
    out = new FileOutputStream(filename);
    bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
} catch (Exception e) {
    e.printStackTrace();
} finally {
    try {
        if (out != null) {
            out.close();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

144voto

JoaquinG Points 1121
Voici un exemple :

38voto

user996042 Points 221
<pre><code></code><p>lèvera une exception sans permission dans AndroidManifest.xml (au moins en os2.2) :</p><pre><code></code></pre></pre>

28voto

Alessandro Points 31

OnActivityResult intérieur

13voto

Roces Points 320

Certains formats, tels que PNG, qui est sans perte, ignore le paramètre de qualité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X