# setWatermark method Null safety

Future<void> setWatermark(

1. String assetUrl,
2. int streamType,
3. double x,
4. double y,
5. double width

)

添加水印

水印的位置是通过 x, y, width 来指定的

- x：水印的坐标，取值范围为0 - 1的浮点数。
- y：水印的坐标，取值范围为0 - 1的浮点数。
- width：水印的宽度，取值范围为0 - 1的浮点数。

举例：如果当前编码分辨率是540 × 960，(x, y, width) 设置为（0.1, 0.1, 0.2） 那么：水印的左上坐标点就是 (540 × 0.1， 960 × 0.1)，也就是 (54, 96)，水印的宽度是 540 × 0.2 = 108px，高度自动计算。

参数：

assetUrl可以为flutter中定义的asset资源地址如'images/watermark_img.png'，也可以为网络图片地址

streamType 如果要给屏幕分享的一路也设置水印，需要调用两次的 setWatermark，请参考 TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_BIG

x 归一化水印位置的 X 轴坐标，取值`0,1`

y 归一化水印位置的 Y 轴坐标，取值`0,1`

width 归一化水印宽度，取值`0,1`

## Implementation

    Future<void> setWatermark(
        String assetUrl, //assets 中的资源地址
        int streamType,
        double x,
        double y,
        double width) async {
      String imageUrl = assetUrl;
      String type = 'network'; //默认为网络图片
      if (assetUrl.indexOf('http') != 0) {
        type = 'local';
      }
      return _channel.invokeMethod('setWatermark', {
        "type": type,
        "imageUrl": imageUrl,
        "streamType": streamType,
        "x": x.toString(),
        "y": y.toString(),
        "width": width.toString()
      });
    }