18

我需要图像的缩略图。我只知道存储在 SD 卡中的图像名称。谁能帮我。

4

4 回答 4

69

试试这个。

final int THUMBSIZE = 64;

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

有关更多详细信息,请参阅此

于 2013-01-01T11:57:19.033 回答
10

使用MediaStore.Images.Thumbnails您可以查询和获取两种缩略图:MINI_KIND:512 x 384 缩略图MICRO_KIND:96 x 96 缩略图。

使用此调用的优点是缩略图由 MediaStore 缓存。因此,如果先前创建了缩略图,则检索会更快。

于 2013-01-01T13:41:23.627 回答
2
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) {

} 
于 2013-01-01T12:02:50.863 回答
1

如果您喜欢总部缩略图,请使用 [RapidDecoder][1] 库。简单如下:

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

如果您想缩小不到 50% 并获得 HQ 结果,请不要忘记使用内置解码器。

于 2016-08-25T11:39:24.203 回答