短视频app开源源码android 给图片加文字、图片水印

实现原理:

Stamper将原图当作画布,把水印图或者文字画入原图中。生成bitmap。

Stamper使用方法:

1.添加依赖

Step 1. Add the JitPack repository to your build file; Add it in your root build.gradle at the end of repositories:
	allprojects {
        repositories {
        ...
        maven { url 'https://jitpack.io' }
        }
        }
Step 2. Add the dependency
	dependencies {
	         implementation 'com.github.KernHu:Stamper:1.1'
	}

2.代码部分:

1.use it stamp a text;

Bitmap bitmap3 = BitmapFactory.decodeResource(getResources(), R.drawable.sample_plot_3);
Stamper.with(MainActivity.this)
      .setLabel("National Geography")
      .setLabelColor(getResources().getColor(R.color.theme))//Color.rgb(255, 60, 70)
      .setLabelSize(60)
      .setMasterBitmap(bitmap3)
      .setStampType(StampType.TEXT)
      .setStampPadding(new StampPadding(bitmap3.getWidth() / 4, bitmap3.getHeight() / 6))
      .setStampWatcher(mStampWatcher)
      .setRequestId(1001)
      .build();

2.use it stamp a image;

Bitmap bitmap4 = BitmapFactory.decodeResource(getResources(), R.drawable.sample_plot_4);
Bitmap watermark = BitmapFactory.decodeResource(getResources(), R.drawable.ic_watermark);
Stamper.with(MainActivity.this)
      .setMasterBitmap(bitmap4)
      .setWatermark(watermark)
      .setStampType(StampType.IMAGE)
      .setStampPadding(new StampPadding(bitmap4.getWidth() - watermark.getWidth() - 40, 40))
      .setStampWatcher(mStampWatcher)
      .setRequestId(1002)
      .build();

3.the callback

StampWatcher mStampWatcher = new StampWatcher() {
        @Override
        protected void onSuccess(Bitmap bitmap, int requestId) {
            super.onSuccess(bitmap, requestId);
			
            switch (requestId) {
 
                case 1001:
                    //the result of text stamper
 
                    break;
                case 1002:
                    //the result of image stamper
 
                    break;
            }
        }
 
        @Override
        protected void onError(String error, int requestId) {
            super.onError(error, requestId);
 
            switch (requestId) {
 
                case 1001://
 
                    break;
                case 1002://
 
                    break;
            }
        }
    };
 

你可能感兴趣的:(技术类,android,bitmap,深度学习,ios,android,studio)