autojs-高斯滤镜BlurMaskFilter

简介: autojs-高斯滤镜BlurMaskFilter

微信图片_20220626131326.gif

"ui";
/*
 * @version: 1.0
 * @Date: 2021-08-15 15:43:57
 * @LastEditTime: 2021-08-15 19:20:02
 * @LastEditors: 牙叔
 * @Description: BlurMaskFilter
 * @FilePath: \autojs-test\main.js
 * @名人名言: 牙叔教程 简单易懂
 * @bilibili: 牙叔教程
 * @公众号: 牙叔教程
 * @QQ群: 747748653
 */
//NORMAL: 内外都模糊绘制
//SOLID: 内部正常绘制,外部模糊
//OUTER: 内部不绘制,外部模糊
//INNER: 内部模糊,外部不绘制
engines.all().map((ScriptEngine) => {
  if (engines.myEngine().toString() !== ScriptEngine.toString()) {
    ScriptEngine.forceStop();
  }
});
importClass(android.graphics.Color);
importClass(android.graphics.Path);
importClass(android.graphics.Paint);
importClass(android.graphics.BlurMaskFilter);
importClass(android.view.MotionEvent);
importClass(android.view.View);
(function () {
  util.extend(CustomView, ui.Widget);
  function CustomView() {
    ui.Widget.call(this);
    let BlurMaskFilterBlurStyle = BlurMaskFilter.Blur.NORMAL;
    this.defineAttr("BlurMaskFilterBlurStyle", (view, attr, value, defineSetter) => {
      switch (value) {
        case "NORMAL":
          value = BlurMaskFilter.Blur.NORMAL;
          break;
        case "SOLID":
          value = BlurMaskFilter.Blur.SOLID;
          break;
        case "OUTER":
          value = BlurMaskFilter.Blur.OUTER;
          break;
        case "INNER":
          value = BlurMaskFilter.Blur.INNER;
          break;
        default:
          value = BlurMaskFilter.Blur.NORMAL;
          break;
      }
      BlurMaskFilterBlurStyle = value;
    });
    let _radius = 1;
    let paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    paint.setColor(Color.RED);
    this.render = function () {
      return JavaAdapter(
        View,
        {
          onMeasure: function (widthMeasureSpec, heightMeasureSpec) {
            this.setMeasuredDimension(230, 230);
          },
          onDraw: function (canvas) {
            if (_radius < 1) {
              _radius = 1;
            }
            paint.setMaskFilter(new BlurMaskFilter(_radius, BlurMaskFilterBlurStyle));
            this.setLayerType(1, null);
            canvas.drawRect(
              0 + this.getWidth() / 3,
              0 + this.getHeight() / 3,
              (this.getWidth() / 3) * 2,
              (this.getHeight() / 3) * 2,
              paint
            );
          },
          setRadius: function (radius) {
            _radius = radius;
            this.invalidate();
          },
        },
        activity
      );
    };
  }
  ui.registerWidget("custom-view", CustomView);
  return CustomView;
})();
ui.layout(
  <vertical>
    <text text="牙叔教程 简单易懂" textSize="28sp" textColor="#fbfbfe" bg="#00afff" w="*" gravity="center"></text>
    <seekbar id="seekbar" margin="9"></seekbar>
    <vertical gravity="center_horizontal">
      <text text="NORMAL" w="*" gravity="center" margin="6"></text>
      <custom-view id="customView" BlurMaskFilterBlurStyle="NORMAL" />
      <text text="SOLID" w="*" gravity="center" margin="6"></text>
      <custom-view id="customView1" BlurMaskFilterBlurStyle="SOLID" />
      <text text="OUTER" w="*" gravity="center" margin="6"></text>
      <custom-view id="customView2" BlurMaskFilterBlurStyle="OUTER" />
      <text text="INNER" w="*" gravity="center" margin="6"></text>
      <custom-view id="customView3" BlurMaskFilterBlurStyle="INNER" />
    </vertical>
  </vertical>
);
ui.seekbar.setOnSeekBarChangeListener(
  new android.widget.SeekBar.OnSeekBarChangeListener({
    onProgressChanged(seekBar, progress, fromUser) {
      ui.customView.setRadius(progress);
      ui.customView1.setRadius(progress);
      ui.customView2.setRadius(progress);
      ui.customView3.setRadius(progress);
    },
  })
);


名人名言

思路是最重要的, 其他的百度, bing, stackoverflow, 安卓文档, autojs文档, 最后才是群里问问

--- 牙叔教程


声明

部分内容来自网络

本教程仅用于学习, 禁止用于其他用途

相关文章
|
C++ 计算机视觉
OpenCV-人像—酷感冷艳滤镜
OpenCV-人像—酷感冷艳滤镜
OpenCV-怀旧色滤镜
OpenCV-怀旧色滤镜
Photoshop利用滤镜给照片加上四射的光芒
Photoshop利用滤镜给照片加上四射的光芒
71 0
Portraiture 4最新版Photoshop2023磨皮滤镜插件
Portraiture 4是一款可以安装到Photoshop的磨皮滤镜插件,它可以智能地对人像图片中的皮肤、头发、眉毛等部位进行平滑和减少瑕疵的处理,同时保留重要的细节和纹理。它还有强大的蒙版工具,可以选择性地对肤色区域进行调整,并提供预设和自定义设置的功能。可以快速准确地进行人像磨皮和美容效果的修饰。它具有智能蒙版技术,可以识别出照片中的人像部分并进行精确的磨皮处理,同时保留其他部分的细节和纹理。今天给大家带来商业级质感磨皮插件Portraiture 4.03,它可以实现方便快速高效的磨皮操作,可以平滑皮肤并去除缺陷,同时保留皮肤纹理和其他重要的人像细节,如头发、眉毛、睫毛等。
732 0
portraiture2023最新版滤镜人像图片磨皮软件
一款好的图片磨皮软件可以解放修图者的双手,减去繁琐的抠图操作,轻松去除人像脸部的瑕疵。经典而实用的portraiture图片磨皮软件,是人像修图的颇佳选择。
205 0
|
API 计算机视觉 Python
用Python实现美化照片———磨皮
如何用Python实现磨皮
552 0
用Python实现美化照片———磨皮
滤镜是否会蒙蔽你的双眼?
滤镜是否会蒙蔽你的双眼?
滤镜是否会蒙蔽你的双眼?
|
算法
实现怀旧滤镜与连环画滤镜---OpenCV-Python开发指南(48)
实现怀旧滤镜与连环画滤镜---OpenCV-Python开发指南(48)
200 0
实现怀旧滤镜与连环画滤镜---OpenCV-Python开发指南(48)
|
JavaScript 算法 开发工具
autojs人像变换
autojs人像变换
262 0