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提供了两种方法来获取缩略图:请求缩略图(requestThumbail)和生成缩略图(createBitmap)。请求缩略图较为简单,但可能无法满足自定义需求,如大小或质量。生成缩略图则可以自由控制缩放比例和质量,但相对...
在Android平台上,录制视频并生成缩略图是常见的多媒体处理功能,广泛应用于各种应用程序,如社交分享、视频编辑等。本文将深入探讨如何在Android应用中实现这一功能,包括视频录制的基本步骤、生成缩略图的方法以及...
生成Android桌面部件的缩略图是一项关键任务,因为这直接影响到用户在设置界面看到的预览效果。下面我们将详细探讨这一过程。 首先,我们从"添加桌面小部件"开始。在Android应用中,添加桌面部件是通过实现`...
在Android平台上,开发一款应用涉及相机拍照、裁剪和生成缩略图是常见的需求。本文将深入探讨如何在Android中实现这些功能,并提供一个实际的源码实例。 首先,我们来了解一下Android相机API的基本概念。Android...
在Android中,系统提供了多种方法来生成和获取这些缩略图。 对于视频缩略图,我们可以使用`MediaMetadataRetriever`类。这个类提供了一种从多媒体文件中提取元数据的方法,包括获取视频帧作为缩略图。以下是一个...
在Android开发中,图片上传和缩略图查看是常见的功能,尤其在社交应用如微信中,用户经常需要分享图片到动态。本Demo旨在提供一种实现此类功能的解决方案,确保其在实际项目中能够正常工作。 首先,我们关注的是...
- 压缩包中的“Android例子源码录制视频并生成缩略图的简单例子”可能包含以下关键代码片段: - 初始化`MediaRecorder`和`MediaMetadataRetriever` - 视频录制逻辑 - 使用`getFrameAtTime()`生成缩略图 - 可能...
在这个文件中,我们可以找到处理任务列表的逻辑,包括获取应用的活动状态、生成缩略图、布局管理等。Android的Activity是应用程序的基本组件,用于与用户进行交互,而`RecentsActivity`可能是系统专为显示最近任务...
Android中的`BitmapFactory`类是处理图像的核心工具,它可以用于解码图片资源为`Bitmap`对象,包括生成缩略图。使用`decodeStream`, `decodeResource`或`decodeFile`方法时,可以配合` BitmapFactory.Options`对象来...
2. **BitmapFactory.Options**: 如果我们不希望使用`MediaStore`,也可以直接读取图片文件并使用`BitmapFactory`来生成缩略图。通过设置`BitmapFactory.Options`的`inSampleSize`参数,我们可以控制图片的缩放比例,...
不过,可以生成代表音频文件的艺术封面或者专辑图片,这与视频缩略图类似,通过`MediaMetadataRetriever`获取。 综上所述,"图片视频缩略图"是一个涵盖多媒体处理、内存管理、性能优化等多个方面的技术主题。在实际...
生成缩略图的过程通常是在系统扫描新图片或用户请求时触发,通过`BitmapFactory.decodeFile()`或`Bitmap.createScaledBitmap()`等方法进行。 Android系统为了提高性能,会将生成的缩略图存储在SQLite数据库中,这个...
在 Android 的一些界面中,有时候我们需要为一副图片生成大小为 n * n 的缩略图,有时候需要的缩略图特殊一些,比如: 1、带圆角的缩略图: 如果我们需要带圆角的缩略图,但提供的图片是 n * n 的正方形的图片,该...
`PDFView`库提供了生成缩略图的功能。通过`setThumbNailCount(int count)`方法,你可以指定要生成的缩略图数量。例如,如果希望每一页都有缩略图,可以设置为`pdfView.setThumbNailCount(pdfDocument.getPageCount...
3. **生成缩略图**:调用`ThumbnailUtils.createVideoThumbnail()`方法,将得到的缩略图保存为Bitmap对象。 4. **显示缩略图**:将生成的Bitmap对象设置到ImageView或者其他视图组件中。 至于视频播放,Android...
Android生成视频预览缩略图播放指定视频,学习一下如何获取界面上VideoView组件,如何创建MediaController对象,设置videoView与mController建立关联,设置mController与videoView建立关联,让VideoView获取焦点等...
其次,将布局转换为图片是一个图像处理过程。Android提供了`View`类的`draw()`方法,可以将视图的内容绘制到`Bitmap`对象上。开发者需要创建一个`Bitmap`对象,设置适当的大小以适应布局内容,然后通过`Canvas`将...
缩略图通常是通过降低图像分辨率、裁剪部分区域或者对原始图像进行下采样来生成的。 图片放大展开,顾名思义,就是将缩略图恢复成其原始大小的过程。这个过程可能涉及到图像插值,因为缩略图的像素数量通常远小于...
它位于`android.media`包下,主要提供了静态方法来生成视频的缩略图。下面我们将深入解析`ThumbnailUtils`的使用方法。 1. **获取视频缩略图** 获取视频缩略图主要通过`ThumbnailUtils.createVideoThumbnail()`...