【示意代码,语法可能有误】
一、将图片生成数据流/图片文件:
1.从图片资源文件生成数据流:
InputStream input = getResources.openRawResource(R.drawable.ico);
2.将图片写为图片文件:
mBitmap.compress(Bitmap.CompressFormat.JPEG, 100, output);//output为FileOutputStream对象
二、生成图片:
1.从数据流、字节、文件路径生成图片:
//可通过FileInputStream对象得到input,或通过Uri的方式即cr.openInputStream(uri)
Bitmap mBitmap = BitmapFactory.decodeStream(input);
=>BitmapFactory.decodeByteArray//从字节转为图片
=>BitmapFactory.decodeFile("/sdcard/b.jpg");//从文件路径转为图片
2.直接从图片url生成图片
URL url = new URL(“http://himg2.huanqiu.com/statics/images/index/logo.png”);
Drawable drawable = Drawable.createFromStream( url.openStream(), "");
3.从文件路径生成图片
Drawable drawable = Drawable.createFromPath("/sdcard/a.jpg");
三、图片/视频的缩略图的创建:
1.ThumbnailUtils.extractThumbnail(source, width, height); //参数分别为源文件、压缩后宽度、压缩后高度
2.ThumbnailUtils.extractThumbnail(source, width, height, options);//参数分别为源文件、压缩后宽度、压缩后高度、options(定义为OPTIONS_RECYCLE_INPUT则回收 source)
3.ThumbnailUtils.createVideoThumbnail(filePath, kind); //创建视频缩略图
四、图片的压缩处理:
1.压缩图片质量:
bitmap.compress(Bitmap.CompressFormat.JPEG, quality, fos);
其中的quality为0~100, 可以压缩图片质量
2.等比例缩放:
bitmap = Bitmap.createScaledBitmap(bitmap, width, height, false);
3.截取图片某部分:
bitmap = Bitmap.createBitmap(bitmap, x, y, width, height);
五、图片处理相关的一些重要类及属性:
1.BitmapFactory.Options options = new BitmapFactory.Options();
(1)options.inJustDecodeBounds // true,false:是否将图片加入内存
(2)options.inSampleSize //压缩比例
使用:BitmapFactory.decodeFile(srcPath, options );