Ho bisogno di una miniatura di un'immagine. Conosco solo il nome dell'immagine che è memorizzata nella scheda SD. Qualcuno può aiutarmi.ottenere Image ThumbNail in Android
risposta
Prova questo.
final int THUMBSIZE = 64;
Bitmap ThumbImage = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(imagePath),
THUMBSIZE, THUMBSIZE);
Refer this per ulteriori dettagli.
questo funziona per me. Grazie. –
Devo chiamare questo codice sul thread principale? –
Che cos'è 'imagePath'? –
byte[] imageData = null;
try
{
final int THUMBNAIL_SIZE = 64;
FileInputStream fis = new FileInputStream(fileName);
Bitmap imageBitmap = BitmapFactory.decodeStream(fis);
Float width = new Float(imageBitmap.getWidth());
Float height = new Float(imageBitmap.getHeight());
Float ratio = width/height;
imageBitmap = Bitmap.createScaledBitmap(imageBitmap, (int)(THUMBNAIL_SIZE * ratio), THUMBNAIL_SIZE, false);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
imageData = baos.toByteArray();
}
catch(Exception ex) {
}
Usando MediaStore.Images.Thumbnails
è possibile interrogare e ottenere due tipi di miniature: MINI_KIND: 512 x 384 miniature MICRO_KIND: 96 x 96 miniature.
Il vantaggio di utilizzare questa chiamata è che le miniature sono memorizzate nella cache dal MediaStore. Quindi il recupero sarebbe più veloce se la miniatura fosse stata precedentemente creata.
Se ti piacciono le miniature HQ, utilizza la libreria [RapidDecoder] [1]. E 'semplice come segue:
import rapid.decoder.BitmapDecoder;
...
Bitmap bitmap = BitmapDecoder.from(getResources(), R.drawable.image)
.scale(width, height)
.useBuiltInDecoder(true)
.decode();
Non dimenticare di usare decoder incorporato, se si vuole ridimensionare meno del 50% e un risultato HQ.
quello che vuoi fare con quella miniatura –