【问题标题】:getting Image ThumbNail in Android在 Android 中获取 Image ThumbNail
【发布时间】:2012-12-16 02:50:39
【问题描述】:

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

【问题讨论】:

  • 你想用那个缩略图做什么
  • 我需要缩略图,因为在将所有图像 URI 直接放入 GridView 时,我不断收到 java.lang.OutOfMemoryError

标签: android image thumbnails


【解决方案1】:

试试这个。

final int THUMBSIZE = 64;

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

Refer this 了解更多详情。

【讨论】:

  • imagePath 是什么?
  • 是存储在sdcard中的图片路径名。
  • 如果您使用 Uri 作为图像,您可以使用例如 imageUri.getPath() 获取路径
  • 切中要害,确实非常有用,谢谢!
【解决方案2】:

使用MediaStore.Images.Thumbnails可以查询得到两种缩略图:MINI_KIND: 512 x 384 thumbnail MICRO_KIND: 96 x 96 thumbnail。

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

【讨论】:

    【解决方案3】:
    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) {
    
    } 
    

    【讨论】:

      【解决方案4】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-11-27
        • 1970-01-01
        • 2011-06-06
        • 1970-01-01
        • 2020-09-07
        • 1970-01-01
        • 2014-09-05
        • 2011-12-31
        相关资源
        最近更新 更多