zoukankan      html  css  js  c++  java
  • 图片缩放,旋转,平移,镜面效果,倒影效果,图片合成

    package com.example.test;
    
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Matrix;
    import android.graphics.Paint;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.ImageView;
    
    public class TestBitmap2 extends AppCompatActivity {
    private ImageView mIv1,mIv2;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_test_bitmap2);
            mIv1= (ImageView) findViewById(R.id.iv_bit1);
            mIv2= (ImageView) findViewById(R.id.iv_bit2);
            Bitmap bitmap1= BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher);
            mIv1.setImageBitmap(bitmap1);
    
            Bitmap bitmap2=Bitmap.createBitmap(bitmap1.getWidth(),bitmap1.getHeight(),bitmap1.getConfig());
            Canvas canvas=new Canvas(bitmap2);
            Paint paint=new Paint();
            paint.setColor(Color.BLACK);
            Matrix matrix=new Matrix();
    
            //图片缩放
           /* matrix.setValues(new float[]{
                    0.5f,0,0,
                    0,0.5f,0,
                    0,0,1
            });*/
    
            //图片旋转
           // matrix.setRotate(180,bitmap1.getWidth()/2,bitmap1.getHeight()/2);
          /*  matrix.setRotate(15);
            paint.setAntiAlias(true);//消除锯齿*/
    
            //图片平移
            matrix.setTranslate(10,10);//水平和竖直方向移动10个像素
    
            //镜子效果
          /*  matrix.setScale(-1,1);
            matrix.postTranslate(bitmap1.getWidth(),0);*/
    
            //倒影效果
           /* matrix.setScale(1,-1);
            matrix.postTranslate(0,bitmap1.getHeight());
            canvas.drawBitmap(bitmap1,matrix,paint);*/
    
            mIv2.setImageBitmap(bitmap2);
    
    
        }
    }
    package com.example.test;
    
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Matrix;
    import android.graphics.Paint;
    import android.graphics.PorterDuff;
    import android.graphics.PorterDuffXfermode;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.ImageView;
    
    public class TestBitmap3 extends AppCompatActivity {
    private ImageView mIv;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_test_bitmap3);
            mIv= (ImageView) findViewById(R.id.iv_bit3);
            //图片合成画布,   先画图片A,再画图片B
            Bitmap bitmap= BitmapFactory.decodeResource(getResources(),R.drawable.ic_guide_1);
            Bitmap alterBitmap=Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(),bitmap.getConfig());
            Canvas canvas=new Canvas(alterBitmap);
            Paint paint=new Paint();
            paint.setColor(Color.BLACK);
            paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DARKEN));//设置图形的混合模式
            canvas.drawBitmap(bitmap,new Matrix(),paint);
            Bitmap ic_luncher=BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher);
            canvas.drawBitmap(ic_luncher,new Matrix(),paint);
            mIv.setImageBitmap(alterBitmap);
        }
    }
  • 相关阅读:
    将空值转换为实际值
    图像的几何变换(一)
    图像的代数运算
    灰度直方图均衡化的算数推导
    图像的点运算
    探索数据可视化,业务数据是核心
    Gazebo機器人仿真學習探索筆記(一)安裝與使用
    脐带血要不要保存?看了你就明白!
    linuxsvn源代码版本库建立
    svn(subversion)代码版本管理在linux下的一些常见使用命令
  • 原文地址:https://www.cnblogs.com/jiang2538406936/p/6029141.html
Copyright © 2011-2022 走看看