2013-01-01 4 views
8

Ich brauche Thumbnail eines Bildes. Ich weiß nur über den Namen des Bildes, das auf der SD-Karte gespeichert ist. Kann mir jemand helfen.bekommen Bild Text in Android

+0

was willst du mit diesem thumbnail machen –

Antwort

46

Versuchen Sie es.

final int THUMBSIZE = 64; 

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

Refer this für weitere Details.

+2

das funktioniert für mich. Vielen Dank. –

+0

Sollte ich diesen Code auf Haupt-Thread aufrufen? –

+0

Was ist '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

MediaStore.Images.Thumbnails Verwenden Sie können zwei Arten von Thumbnails abfragen und erhalten: MINI_KIND: 512 x 384 Miniaturbild MICRO_KIND: 96 x 96 Miniaturbild.

Der Vorteil dieses Aufrufs besteht darin, dass die Miniaturansichten vom MediaStore zwischengespeichert werden. Der Abruf wäre also schneller, wenn das Vorschaubild zuvor erstellt wurde.

0

Wenn Sie HQ-Miniaturbilder mögen, verwenden Sie die [RapidDecoder] [1] -Bibliothek. Es ist einfach wie folgt:

import rapid.decoder.BitmapDecoder; 
... 
Bitmap bitmap = BitmapDecoder.from(getResources(), R.drawable.image) 
          .scale(width, height) 
          .useBuiltInDecoder(true) 
          .decode(); 

Vergessen Sie nicht eingebaute Decoder zu verwenden, wenn Sie weniger als 50% verkleinern wollen und ein HQ Ergebnis.