`
TodayHu
  • 浏览: 17484 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

android为图片生成缩略图

阅读更多
android api里自带了一个Bitmap类,用于处理图片。不是很难,直接上代码

view plaincopy to clipboardprint?
package com.forwork.thumbnail; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import android.app.Activity; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.os.Bundle; 
import android.util.Log; 
public class Thumbnail extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
try { 
saveMyBitmap("ooo"); 
} catch (IOException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 


public void saveMyBitmap(String bitName) throws IOException { 
File originalFile = new File("sdcard/pic/ll.jpg"); 
Bitmap bmp = decodeFile(originalFile); 
File f = new File("/sdcard/" + bitName + ".jpg"); 
f.createNewFile(); 
FileOutputStream fOut = null; 
try { 
fOut = new FileOutputStream(f); 
} catch (FileNotFoundException e) { 
e.printStackTrace(); 

//BitmapFactory.Options options=new BitmapFactory.Options(); 
        //options.inSampleSize = 10; 
//options.inTempStorage = new byte[16*1024]; 
//Bitmap bmp = BitmapFactory.decodeFile("/sdcard/pic/sd.jpg"); 
//Bitmap bmp = BitmapFactory.decodeFile("/sdcard/pic/ll.jpg", options); 
//bmp = Bitmap.createScaledBitmap(bmp, 800, 480, true); 
bmp.compress(Bitmap.CompressFormat.JPEG, 30, fOut); 
try { 
fOut.flush(); 
} catch (IOException e) { 
e.printStackTrace(); 

try { 
fOut.close(); 
} catch (IOException e) { 
e.printStackTrace(); 


//decodes image and scales it to reduce memory consumption 
private Bitmap decodeFile(File f){ 
    try { 
        //Decode image size 
        BitmapFactory.Options o = new BitmapFactory.Options(); 
        o.inJustDecodeBounds = true; 
        BitmapFactory.decodeStream(new FileInputStream(f),null,o); 
        //The new size we want to scale to 
        final int REQUIRED_HEIGHT=800; 
        final int REQUIRED_WIDTH=480; 
        //Find the correct scale value. It should be the power of 2. 
        int width_tmp=o.outWidth, height_tmp=o.outHeight; 
         
        System.out.println(width_tmp+"  "+height_tmp); 
        Log.w("===", (width_tmp+"  "+height_tmp)); 
         
        int scale=1; 
        while(true){ 
            if(width_tmp/2<REQUIRED_WIDTH && height_tmp/2<REQUIRED_HEIGHT) 
                break; 
            width_tmp/=2; 
            height_tmp/=2; 
            scale++; 
             
            Log.w("===", scale+"''"+width_tmp+"  "+height_tmp); 
        } 
        //Decode with inSampleSize 
        BitmapFactory.Options o2 = new BitmapFactory.Options(); 
        o2.inSampleSize=scale; 
        return BitmapFactory.decodeStream(new FileInputStream(f), null, o2); 
    } catch (FileNotFoundException e) {} 
    return null; 

分享到:
评论

相关推荐

    ANDROID 获取最近的相片的缩略图

    Android提供了两种方法来获取缩略图:请求缩略图(requestThumbail)和生成缩略图(createBitmap)。请求缩略图较为简单,但可能无法满足自定义需求,如大小或质量。生成缩略图则可以自由控制缩放比例和质量,但相对...

    android 录制视频并生成缩略图

    在Android平台上,录制视频并生成缩略图是常见的多媒体处理功能,广泛应用于各种应用程序,如社交分享、视频编辑等。本文将深入探讨如何在Android应用中实现这一功能,包括视频录制的基本步骤、生成缩略图的方法以及...

    生成android桌面部件的缩略图

    生成Android桌面部件的缩略图是一项关键任务,因为这直接影响到用户在设置界面看到的预览效果。下面我们将详细探讨这一过程。 首先,我们从"添加桌面小部件"开始。在Android应用中,添加桌面部件是通过实现`...

    android相机拍照、裁剪缩略图源码

    在Android平台上,开发一款应用涉及相机拍照、裁剪和生成缩略图是常见的需求。本文将深入探讨如何在Android中实现这些功能,并提供一个实际的源码实例。 首先,我们来了解一下Android相机API的基本概念。Android...

    thumbnails-android 获取视频还有图片的缩略图

    在Android中,系统提供了多种方法来生成和获取这些缩略图。 对于视频缩略图,我们可以使用`MediaMetadataRetriever`类。这个类提供了一种从多媒体文件中提取元数据的方法,包括获取视频帧作为缩略图。以下是一个...

    Android中一个关于图片上传和缩略图查看的Demo

    在Android开发中,图片上传和缩略图查看是常见的功能,尤其在社交应用如微信中,用户经常需要分享图片到动态。本Demo旨在提供一种实现此类功能的解决方案,确保其在实际项目中能够正常工作。 首先,我们关注的是...

    录制视频生成缩略图

    - 压缩包中的“Android例子源码录制视频并生成缩略图的简单例子”可能包含以下关键代码片段: - 初始化`MediaRecorder`和`MediaMetadataRetriever` - 视频录制逻辑 - 使用`getFrameAtTime()`生成缩略图 - 可能...

    10.0任务列表获取缩略图

    在这个文件中,我们可以找到处理任务列表的逻辑,包括获取应用的活动状态、生成缩略图、布局管理等。Android的Activity是应用程序的基本组件,用于与用户进行交互,而`RecentsActivity`可能是系统专为显示最近任务...

    android 浏览缩略图的功能 .zip

    Android中的`BitmapFactory`类是处理图像的核心工具,它可以用于解码图片资源为`Bitmap`对象,包括生成缩略图。使用`decodeStream`, `decodeResource`或`decodeFile`方法时,可以配合` BitmapFactory.Options`对象来...

    Android获取图片、视频缩略图

    2. **BitmapFactory.Options**: 如果我们不希望使用`MediaStore`,也可以直接读取图片文件并使用`BitmapFactory`来生成缩略图。通过设置`BitmapFactory.Options`的`inSampleSize`参数,我们可以控制图片的缩放比例,...

    图片视频缩略图

    不过,可以生成代表音频文件的艺术封面或者专辑图片,这与视频缩略图类似,通过`MediaMetadataRetriever`获取。 综上所述,"图片视频缩略图"是一个涵盖多媒体处理、内存管理、性能优化等多个方面的技术主题。在实际...

    Android缩略图代码跟踪分析

    生成缩略图的过程通常是在系统扫描新图片或用户请求时触发,通过`BitmapFactory.decodeFile()`或`Bitmap.createScaledBitmap()`等方法进行。 Android系统为了提高性能,会将生成的缩略图存储在SQLite数据库中,这个...

    Android 实现图片生成卷角和圆角缩略图的方法

    在 Android 的一些界面中,有时候我们需要为一副图片生成大小为 n * n 的缩略图,有时候需要的缩略图特殊一些,比如: 1、带圆角的缩略图: 如果我们需要带圆角的缩略图,但提供的图片是 n * n 的正方形的图片,该...

    Android加载PDF,附带缩略图

    `PDFView`库提供了生成缩略图的功能。通过`setThumbNailCount(int count)`方法,你可以指定要生成的缩略图数量。例如,如果希望每一页都有缩略图,可以设置为`pdfView.setThumbNailCount(pdfDocument.getPageCount...

    Android项目实现获取视频的缩略图(ThumbnailUtils),并且播放.rar

    3. **生成缩略图**:调用`ThumbnailUtils.createVideoThumbnail()`方法,将得到的缩略图保存为Bitmap对象。 4. **显示缩略图**:将生成的Bitmap对象设置到ImageView或者其他视图组件中。 至于视频播放,Android...

    Android生成视频预览缩略图播放指定视频.rar

    Android生成视频预览缩略图播放指定视频,学习一下如何获取界面上VideoView组件,如何创建MediaController对象,设置videoView与mController建立关联,设置mController与videoView建立关联,让VideoView获取焦点等...

    Android 布局生成微信分享图片

    其次,将布局转换为图片是一个图像处理过程。Android提供了`View`类的`draw()`方法,可以将视图的内容绘制到`Bitmap`对象上。开发者需要创建一个`Bitmap`对象,设置适当的大小以适应布局内容,然后通过`Canvas`将...

    图片缩略图展开

    缩略图通常是通过降低图像分辨率、裁剪部分区域或者对原始图像进行下采样来生成的。 图片放大展开,顾名思义,就是将缩略图恢复成其原始大小的过程。这个过程可能涉及到图像插值,因为缩略图的像素数量通常远小于...

    Android应用源码实现获取视频的缩略图(ThumbnailUtils),并且播放.zip

    它位于`android.media`包下,主要提供了静态方法来生成视频的缩略图。下面我们将深入解析`ThumbnailUtils`的使用方法。 1. **获取视频缩略图** 获取视频缩略图主要通过`ThumbnailUtils.createVideoThumbnail()`...

Global site tag (gtag.js) - Google Analytics