2013-01-01 3 views
8

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

+0

quello che vuoi fare con quella miniatura –

risposta

46

Prova questo.

final int THUMBSIZE = 64; 

Bitmap ThumbImage = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(imagePath), 
        THUMBSIZE, THUMBSIZE); 

Refer this per ulteriori dettagli.

+2

questo funziona per me. Grazie. –

+0

Devo chiamare questo codice sul thread principale? –

+0

Che cos'è 'imagePath'? –

1
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) { 

} 
7

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.

0

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.