Graphics->BitmapDecode 介绍Android 平台对图像的解码功能,Android平台支持PNG, JPEG图像格式,并可以支持 gif动画。
来源:互联网 发布:用java写一个爬虫 编辑:程序博客网 时间:2024/06/18 13:39
BitmapDecode 例子主要介绍了Android 平台对图像的解码功能,Android平台支持PNG, JPEG图像格式,并可以支持 gif动画。
Android API中用来解码图像的类主要有BitmapFactory (静态图像PNG或是JPEG)和Movie 解码动画(gif动画等)。
对图像或动画解码,数据源可以说byte 数组,InputStream ,资源ID,或者指定文件名。对于BitmapFactory来说,还可以通过BitmapFactory.Options 指定解码时的一些设置。
下面代码指定opts.inJustDecodeBounds = true,表示解码时只想获取被解码图像的长度和宽度,此时bm返回值为null, 而opts.outWidth, opts.outHeight中返回了图像的宽度和长度。这种用法解码器无需为被解码的图像分配内存而值是通过BitmapFactory.Options 的输出参数返回有关图像的一些信息。
BitmapFactory.Options opts =
new
BitmapFactory.Options();
Bitmap bm;
opts.inJustDecodeBounds =
true
;
bm = BitmapFactory.decodeStream(is,
null
, opts);
// now opts.outWidth and opts.outHeight are the dimension of the
// bitmap, even though bm is null
下面代码将采样大小设为4,相当于每隔4个像素采样一次,结果是解码后的图像为原图的四分之一(具体的采用算法由平台决定,并非简单的隔4个像素取其中一个像素值)。
opts.inJustDecodeBounds =
false
;
// this will request the bm
opts.inSampleSize =
4
;
// scaled down by 4
bm = BitmapFactory.decodeStream(is,
null
, opts);
mBitmap = bm;
下面代码从资源文件通过InputStream解码图像:
// decode an image with transparency
is = context.getResources().openRawResource(R.drawable.frog);
mBitmap2 = BitmapFactory.decodeStream(is);
对应解码后的图像Bitmap对象,可以通过getPixels取的图像对应的像素值数组,有了这个像素值数组,Bitmap可以创建不同配置的图像,下面代码创建两种配置的图像:ARGB_8888,ARGB_4444,新图像每个像素占用的字节大小不一。
int
w = mBitmap2.getWidth();
int
h = mBitmap2.getHeight();
int
[] pixels =
new
int
[w*h];
mBitmap2.getPixels(pixels,
0
, w,
0
,
0
, w, h);
mBitmap3 = Bitmap.createBitmap(pixels,
0
, w, w, h,
Bitmap.Config.ARGB_8888);
mBitmap4 = Bitmap.createBitmap(pixels,
0
, w, w, h,
Bitmap.Config.ARGB_4444);
对应Drawable资源来说,更一般的做法是直接使用Resources对象来取得相应的Drawable资源:
mDrawable = context.getResources().getDrawable
(R.drawable.button);
mDrawable.setBounds(
150
,
20
,
300
,
100
);
android.graphics.Movie对应可以用来解码.gif动画资源,从数组或是直接从InputStream中解码:R.drawable.animated_gif 为一飘动的旗帜动画。
is = context.getResources()
.openRawResource(R.drawable.animated_gif);
if
(
true
) {
mMovie = Movie.decodeStream(is);
}
else
{
byte
[] array = streamToBytes(is);
mMovie = Movie.decodeByteArray(array,
0
, array.length);
}
- Graphics->BitmapDecode 介绍Android 平台对图像的解码功能,Android平台支持PNG, JPEG图像格式,并可以支持 gif动画。
- android 对GIF动画格式的支持
- android平台vlc对mms的支持
- 让你的PHP同时支持GIF、png、JPEG
- 让你的PHP同时支持GIF、png、JPEG
- SWT图片显示,支持JPEG,GIF(动画),BMP,ICO,PNG和TIFF
- SWT图片显示,支持JPEG,GIF(动画),BMP,ICO,PNG和TIFF
- Delphi增加对动画Gif的支持
- 解析BMP GIF JPEG TGA PNG图像格式
- 解析BMP GIF JPEG TGA PNG图像格式
- android gif动画显示支持5.0
- 支持X86平台的Android输入法
- Android培训---支持不同的平台版本
- Android 支持不同的SDK版本平台
- ffmpeg支持x264的android平台编译
- 说明:本文主要介绍五种最常见和最常用的图像格式:BMP,PNG,JPEG,JPEG200,以及GIF
- 新版Qt可以支持Android和IOS平台
- Android 平台语言支持状态
- 【ProjectEuler】ProjectEuler_032
- 【ProjectEuler】ProjectEuler_033
- WebKit编译之cairo
- Java技术体系
- 【ProjectEuler】ProjectEuler_034
- Graphics->BitmapDecode 介绍Android 平台对图像的解码功能,Android平台支持PNG, JPEG图像格式,并可以支持 gif动画。
- 【ProjectEuler】ProjectEuler_035
- 【ProjectEuler】ProjectEuler_036
- 【ProjectEuler】ProjectEuler_037
- 【ProjectEuler】ProjectEuler_038
- 【ProjectEuler】ProjectEuler_067
- WebKit实现Chrome插件
- 玩《现代战争3》预发行版可能导致 XBOX LIVE 帐号被禁
- C野指针