Android Bitmap
来源:互联网 发布:问道辅助软件 编辑:程序博客网 时间:2024/05/17 23:25
1、Drawable → Bitmap
public static Bitmap drawableToBitmap(Drawable drawable) {
Bitmap bitmap = Bitmap
.createBitmap(
drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(),
- drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
// canvas.setBitmap(bitmap);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight());
drawable.draw(canvas);
return bitmap;
}
2、从资源中获取Bitmap
Resources res=getResources();
Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);
3、Bitmap → byte[]
private byte[] Bitmap2Bytes(Bitmap bm){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
return baos.toByteArray();
}
4、byte[] → Bitmap
private Bitmap Bytes2Bimap(byte[] b){
if(b.length!=0){
return BitmapFactory.decodeByteArray(b, 0, b.length);
}
else {
return null;
}
}
5、保存bitmap
static boolean saveBitmap2file(Bitmap bmp,String filename){
CompressFormat format= Bitmap.CompressFormat.JPEG;
int quality = 100;
OutputStream stream = null;
try {
stream = new FileOutputStream(“/sdcard/” + filename);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
e.printStackTrace();
}
return bmp.compress(format, quality, stream);
}
6、将图片按自己的要求缩放
// 图片源
Bitmap bm = BitmapFactory.decodeStream(getResources()
.openRawResource(R.drawable.dog));
// 获得图片的宽高
int width = bm.getWidth();
int height = bm.getHeight();
// 设置想要的大小
int newWidth = 320;
int newHeight = 480;
// 计算缩放比例
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
// 取得想要缩放的matrix参数
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
// 得到新的图片
Bitmap newbm = Bitmap.createBitmap(bm, 0, 0, width, height, matrix,
true);
// 放在画布上
canvas.drawBitmap(newbm, 0, 0, paint);
7、File图片转Bitmap
Bitmap bt = BitmapFactory.decodeFile(“/sdcard/myImage/” + “head.jpg”);//图片地址
8、图片转Bitmap
public Bitmap drawableToBitamp(int drawableResource) {//可以取raw里面的资源
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
opt.inPurgeable = true;
opt.inInputShareable = true;
InputStream is = this.getResources().openRawResource(drawableResource);
BitmapFactory.decodeStream(is, null, opt);
return BitmapFactory.decodeStream(is, null, opt);
}
9、android view的内容 映射成bitmap
rlHeartQrBg.setDrawingCacheEnabled(true); rlHeartQrBg.measure( MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); rlHeartQrBg.layout(0, 0, rlHeartQrBg.getMeasuredWidth(), rlHeartQrBg.getMeasuredHeight()); rlHeartQrBg.buildDrawingCache(); Bitmap cacheBitmap2 = rlHeartQrBg.getDrawingCache(); bitmapImg = Bitmap.createBitmap(cacheBitmap2);
原理:创建一个新的Bitmap,然后再根据它来创建一个Canvas,最后调用View的draw方法将View画到Canvas上,这样得到的Bitmap就是我们想要的。
public Bitmap createViewBitmap(View v) {
Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(),
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
v.draw(canvas);
return bitmap;
}
- android Bitmap
- android Bitmap
- android bitmap
- android Bitmap
- android bitmap
- android Bitmap
- Android Bitmap
- Android--Bitmap
- Android Bitmap
- Android.Bitmap
- Android Bitmap
- Android Bitmap
- Android Bitmap
- Android Bitmap
- Bitmap【Android】
- Android Bitmap
- Android Bitmap
- Android Bitmap
- 兼容性滚动顶部出现
- android自定义View之零散基础知识
- S5PV210 点亮Led
- Day05-jQuery01
- java虚拟机之Java内存区域与内存溢出异常
- Android Bitmap
- 解决mysql添加用户Field 'ssl_cipher' doesn't have a default value的错误
- C语言单链表的一些操作
- RaspberryPi(树莓派)从U盘启动
- 放置式new
- 大数据-孩子学习成绩分析
- 47、求1+2+3+...+n
- 原生JS基础之拖拽效果
- 开发者论坛运营方法