autojs模仿抖音logo效果
牙叔教程 简单易懂
效果展示
为什么做
看到别人的头像是这种风格, 虽然我不会去修改自己的头像,
但是我想知道如何实现这样的效果,
虽然写出来了, 不过我感觉还是不完全像抖音的效果, 可能还缺点啥
环境
手机: Mi 11 Pro
Android版本: 11
Autojs版本: 9.0.10
思路
- 抖音的logo看起来像两张图片重叠的效果
- 两张图片是透明的
- 还加了偏移
- 从原图搞两张透明图片, 再叠加
你将学到以下知识点
- 设置seekbar监听事件
- 在seekbar监听事件中, img设置图片, 然后回收图片
- 由于修改图片是耗时操作, 所以要放到多线程中
- 合并透明图片
- byte数组转换成16进制字符串
- 判断图片类型
- 修改mat各个通道的值
- mat转bitmap
代码讲解
1. 导入类, 基本只要你在autojs使用opencv就会用到这些类
console.time("导入类");
runtime.images.initOpenCvIfNeeded();
importClass(org.opencv.core.MatOfByte);
importClass(org.opencv.core.Scalar);
importClass(org.opencv.core.Point);
importClass(org.opencv.core.CvType);
importClass(java.util.List);
importClass(java.util.ArrayList);
importClass(java.util.LinkedList);
importClass(org.opencv.imgproc.Imgproc);
importClass(org.opencv.imgcodecs.Imgcodecs);
importClass(org.opencv.core.Core);
importClass(org.opencv.core.Mat);
importClass(org.opencv.core.MatOfDMatch);
importClass(org.opencv.core.MatOfKeyPoint);
importClass(org.opencv.core.MatOfRect);
importClass(org.opencv.core.Size);
importClass(org.opencv.features2d.DescriptorMatcher);
importClass(org.opencv.features2d.Features2d);
importClass(org.opencv.core.MatOfPoint2f);
importClass(android.graphics.Bitmap);
importClass(org.opencv.android.Utils);
importClass(java.lang.StringBuilder);
importClass(java.io.FileInputStream);
importClass(java.io.File);
console.timeEnd("导入类");
2. 界面
ui.layout(<vertical><img id="img"></img><text id="info" textSize="22sp" textColor="#fbfbfe" bg="#00afff" w="*" gravity="center">牙叔教程</text><horizontal margin="8"><text>画笔透明度: </text><text id="paintAlphaValue">0</text><seekbar id="paintAlphaSeekbar" margin="9" w="*"></seekbar></horizontal><horizontal margin="8"><text>图片透明度: </text><text id="channelAlphaValue">0</text><seekbar id="channelAlphaSeekbar" margin="9" w="*"></seekbar></horizontal><horizontal margin="8"><text>图片偏移: </text><text id="offsetValue">0</text><seekbar id="offsetSeekbar" margin="9" w="*"></seekbar></horizontal></vertical>
);
3. 设置监听
ui.channelAlphaValue.setText(String(channelAlpha));
ui.channelAlphaSeekbar.setMax(255);
ui.channelAlphaSeekbar.setProgress(channelAlpha);
ui.channelAlphaSeekbar.setOnSeekBarChangeListener({onStopTrackingTouch: function (seekBar) {let progress = seekBar.getProgress();let lastImg = currentImg;ui.channelAlphaValue.setText(String(progress));channelAlpha = parseInt(progress);ui.post(function () {threads.start(function () {currentImg = updateImg();});lastImg.recycle();});},
});
4. 修改图片
function updateImg() {let modifiedMat = modifyChannelValue(mat);let modifiedBitmap = mat2bitmap(modifiedMat);modifiedMat.release();let modifiedMat2 = modifyChannelValue2(mat);let modifiedBitmap2 = mat2bitmap(modifiedMat2);modifiedMat2.release();let newImg = merge(grayBitmap, modifiedBitmap, modifiedBitmap2);ui.img.setImageBitmap(newImg.bitmap);modifiedBitmap.recycle();modifiedBitmap2.recycle();return newImg;
}
5. mat转bitmap
function mat2bitmap(mat) {let width = mat.width();let height = mat.height();let bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);Utils.matToBitmap(mat, bitmap);return bitmap;
}
6. byte数组转换成16进制字符串
function bytesToHexString(src) {let stringBuilder = new StringBuilder();if (src == null || src.length <= 0) {return null;}for (let i = 0; i < src.length; i++) {let v = src[i] & 0xff;let hv = java.lang.Integer.toHexString(v);if (hv.length < 2) {stringBuilder.append(0);}stringBuilder.append(hv);}return stringBuilder.toString();
}
7. 释放资源
events.on("exit", function () {ui.post(function () {img.recycle();grayBitmap.recycle();grayImg.recycle();currentImg.recycle();log("退出回收资源");});
});
名人名言
思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问
— 牙叔教程
声明
部分内容来自网络
本教程仅用于学习, 禁止用于其他用途
bilibili
牙叔教程
微信公众号 牙叔教程
QQ群
747748653
完整源码
autojs模仿抖音logo效果相关推荐
- 微信小程序完成简单的模仿抖音点赞效果动画wx.createAnimation
先看看效果图吧 很明显主要有两个重点 (1)是点击任意地方赞的按钮就在哪里出现 (2)是放大缩小 先看wxml吧 <view wx:if="{{swiperappear}}" ...
- 学习uniapp 在App端模仿抖音刷视频效果
uniapp小白,模仿抖音首页的刷视频功能, uniapp插件市场有很多,但是爱好摸鱼的我,也想试一试其他方法 上面是效果图(样式比较潦草,没有仔细写) 一开始想得比较简单,上下滑动的效果用uni内置 ...
- InkScape绘制抖音LOGO的教程
InkScape绘制抖音LOGO的教程 班级:计科1713班 学号:02210171326 姓名:王艺皓 步骤: 1.将文件->文档属性中的网格单位改为px,关闭显示页面边界.将视图中改为自定义 ...
- CSS技巧:单标签实现抖音LOGO。
关键点 主要借助了两个伪元素实现了整体结构,借助了 drop-shadow 生成一层整体阴影 drop-shadow 只能是单层阴影,所以另一层阴影需要多尝试 contrast(150%) brigh ...
- CSS3动画解析抖音 LOGO制作
为什么80%的码农都做不了架构师?>>> 前言 "字节跳动"现今也是如日中天,旗下产品,除头条外,还有短视频平台"抖音",人气也是非常高 ...
- 仅用一个HTML标签,实现带动画的抖音LOGO
大家好,我是零一,今天给大家表演 仅用一个HTML标签实现带动画的抖音LOGO,涉及了很多知识点,欢迎交流讨论 先上结果,最终实现效果如下: 还原度应该还可以吧? 抖音Logo结构 想要用CSS来画抖 ...
- 仅用一个 HTML 标签,实现带动画的抖音 Logo
作者 | 零一 来源 | 前端印象 今天给大家表演 仅用一个HTML标签实现带动画的抖音LOGO,涉及了很多知识点,欢迎交流讨论 先上结果,最终实现效果如下: 成品图 还原度应该还可以吧? 抖音Log ...
- 干货 | 抖音漫画效果解密
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:AI算法与图像处理 抖音漫画效果 要说最近抖音最火的效果 ...
- 基于android的高仿抖音,Android仿抖音列表效果
本文实例为大家分享了Android仿抖音列表效果的具体代码,供大家参考,具体内容如下 当下抖音非常火热,是不是也很心动做一个类似的app吗? 那我们就用RecyclerView实现这个功能吧,关于内存 ...
最新文章
- Java后端职业规划,附学习笔记+面试整理+进阶书籍
- C语言 浮点数从0递增至1.0的过程
- Android开发——跟随手指的小球实现
- 全球及中国生物质能利用产业现状调研及十四五建设布局规划报告2021-2027年
- CVPR 2019笔迹识别论文:逆鉴别网络+八路Attention
- python阿里巴巴排名_python使用urllib模块和pyquery实现阿里巴巴排名查询
- 米聊关停;抖音支付正式上线;谷歌禁用第三方 Chromium 同步功能 | 极客头条
- module 'bit' not found:No LuaRocks module found for bit
- wmware 安装xp系统虚拟机
- 【解决方案】数字孪生智慧光伏电站三维可视化系统
- OBLOG Accesss 转SQL Server 常见问题及解决方法
- 飞凌嵌入式-基于国产A40i核心板-医用呼吸机解决方案
- 使用长角牛演示:防止ARP协议被攻击原理和配置
- 信息学奥赛一本通1176题——谁考了第k名
- 基于Canal+kafka监听数据库变化的最佳实践
- oracle中12560,Oracle ORA-12560解决方法
- 基于Python改变图片像素大小
- JAVA水晶花数_【原创】JAVA中令人眼花撩乱的数字魔法
- C + + 课程设计之服装信息管理系统。①代码分析(含有源码)
- 手机adb调试出现Not running as root. Try“adb root“ first.
热门文章
- python里enumerate函数_python中的enumerate函数
- ubuntu 安装 opencv
- 论文笔记:Utilizing BERT for Aspect-Based Sentiment Analysis via Constructing Auxiliary Sentence
- Win10自带邮件添加Gmail
- 放开那三国服务器维护时间,放开那三国公告:停服更新维护
- [笔记]华为基础命令
- 怎么处理开机技嘉主板出现NO bootable device is detected
- 计算机中blank的作用,电脑打开浏览器总是出现about:blank的处理方法
- 360隔离mysql恢复_MySQL远程连接丢失问题解决办法
- org.junit.runners.model.InvalidTestClassError异常解决