android之旅22 多媒体编程1: 图片处理

来源:互联网 发布:西安九索数据年终奖 编辑:程序博客网 时间:2024/05/20 19:15

图片解析

// 图片缩放显示public void click(View v){// 获取图片时所需要的参数信息    Options opt = new Options();    opt.inJustDecodeBounds = true;    BitmapFactory.decodeFile("xx.jpg", opt);    int imageWidth = opt.outWidth;    int imageHeight = opt.outWeight;    Display dp = getWindowManager().getDefaultDisplay();    int screenWidth = dp.getWidth();    int screenHeight = dp.getHeight();    //获取缩放比例,就是图片宽高分别除以屏幕宽高选小的填到scale.....    opt.insampleSize = scale; //图片缩放实现    opt.inJustDecodeBounds = false;    //加载的对象是只读的,不能修改    BitMap bm = BitMapFactory.decodeFile("xx.jpg", opt);    //获取ImageView实例iv.......    iv.setImageBitmap(bm);}
//创建图片副本public void click(View v){//bmSrc是只读的,无法处理    Bitmap bmSrc = BitmapFactory.decodeFile("xx.jpg");    // 创建一个一模一样大小的图片副本,但其实相当于白纸没有内容    Bitmap bmCopy = BitMap.createBitmap(brmSrc.getWidth(), bmSrc.getHeight(), bmSrc.getConfig());    Paint paint = new Paint();//画笔    Canvas canvas = new Canvas(bmCopy);//画板,把白纸传入    // Matrix是用来对图片做特效处理的    Matrix mt = new Matrix();    mt.setTranslate(20, 40);//平移    mt.setScale(2, 0.5f);//缩放比例,2就是拉伸2倍数    mt.setRotate(45);//旋转    //镜面    mt.setScale(-1, 1);//-1就是X轴翻到屏幕外    mt.postTranslate(bmCopy.getWidth(),0);    //倒影    mt.setScale(1,-1);    mt.postTranslate(0, bmCopy.getHeight());    // 按照bmSrc把原画画在白纸上,也就是bmCopy    canvas.drawBitmap(bmSrc, mt, paint);    canvas.drawLine(10, 10, 10, 10, paint);}
0 0
原创粉丝点击