Android图像处理之Bitmap类.doc_第1页
Android图像处理之Bitmap类.doc_第2页
Android图像处理之Bitmap类.doc_第3页
Android图像处理之Bitmap类.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android图像处理之Bitmap类 分类: AndroidMultimedia2011-09-08 23:366934人阅读评论(6)收藏举报Android图像处理之Bitmap类田海立CSDN2011/09/08Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件。本文从应用的角度,着重介绍怎么用Bitmap来实现这些功能。一、Bitmap的生成1.1 BitmapFactory decode出BitmapBitmap实现在android.graphics包中。但是Bitmap类的构造函数是私有的,外面并不能实例化,只能是通过JNI实例化。这必然是某个辅助类提供了创建Bitmap的接口,而这个类的实现通过JNI接口来实例化Bitmap的,这个类就是BitmapFactory。图一、BitmapFactory主要方法及Options选项利用BitmapFactory可以从一个指定文件中,利用decodeFile()解出Bitmap;也可以定义的图片资源中,利用decodeResource()解出Bitmap。1.2 decode时的选项在使用方法decodeFile()/decodeResource()时,都可以指定一个BitmapFacotry.Options。利用Options的下列属性,可以指定decode的选项: inPreferredConfig 指定decode到内存中,手机中所采用的编码,可选值定义在Bitmap.Config中。缺省值是ARGB_8888。 inJustDecodeBounds 如果设置为true,并不会把图像的数据完全解码,亦即decodeXyz()返回值为null,但是Options的outAbc中解出了图像的基本信息。 inSampleSize 设置decode时的缩放比例。利用Options的这些值就可以高效的得到一幅缩略图。图二、BitmapFactory.decodeFile()先设置inJustDecodeBounds= true,调用decodeFile()得到图像的基本信息Step#24;利用图像的宽度(或者高度,或综合)以及目标的宽度,得到inSampleSize值,再设置inJustDecodeBounds= false,调用decodeFile()得到完整的图像数据Step#58。先获取比例,再读入数据,如果欲读入大比例缩小的图,将显著的节约内容资源。有时候还会读入大量的缩略图,这效果就更明显了。二、利用Bitmap和Matrix实现图像变换Bitmap可以和Matrix结合实现图像的剪切、旋转、缩放等操作。图三、Bitmap方法用源Bitmap通过变换生成新的Bitmap的方法:java view plaincopyprint?1. public static Bitmap createBitmap(Bitmap source, int x, int y, intwidth, int height, 2. Matrix m, boolean filter) 3. public static Bitmap createBitmap(Bitmap source, int x, int y, intwidth, int height) 4. public static Bitmap createScaledBitmap(Bitmap src, int dstWidth, 5. int dstHeight,boolean filter) public static Bitmap createBitmap(Bitmap source, int x, int y, intwidth, int height, Matrix m, boolean filter)public static Bitmap createBitmap(Bitmap source, int x, int y, intwidth, int height)public static Bitmap createScaledBitmap(Bitmap src, int dstWidth, int dstHeight,boolean filter)第一个方法是最终的实现,后两种只是对第一种方法的封装。第二个方法可以从源Bitmap中指定区域(x,y, width, height)中挖出一块来实现剪切;第三个方法可以把源Bitmap缩放为dstWidth x dstHeight的Bitmap。设置Matrix的Rotate(通过setRotate())或者Scale(通过setScale()),传入第一个方法,可实现旋转或缩放。图四、Bitmap实现旋转三、保存图像文件经过图像变换之后的Bitmap里的数据可以保存到图像压缩文件里(JPG/PNG)。图五、保存Bitmap数据到文件这个操作过程中,Bpress()方法的参数format可设置JPEG或PNG格式;quality可选择压缩质量;fOut是输出流(Out

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论