/*
软件作者:https://xuhss.com/oxox/pro
*/
"ui";
ui.layout(
<vertical>
<frame layout_weight="1">
<canvas id="canvas"/>
<list id="list" w="90dp" h="*" bg="#346489" layout_gravity="right">
<text w="*" h="50" text="{{text}}" textSize="16sp" bg="#dddddd" margin="5" gravity="center"/>
</list>
</frame>
<horizontal>
<button id="but" text="复制信息"/>
<button id="center" layout_weight="1" text="菜单"/>
</horizontal>
</vertical>
);
ui.list.setVisibility(8);
var listAry = [{
text: "灰度化"
}, {
text: "二值化"
}, {
text: "自适应二值化"
}, {
text: "RGB转HSV"
}, {
text: "模糊"
}, {
text: "中值滤波"
}, {
text: "高斯模糊"
}, {
text: "原图"
}];
ui.list.setDataSource(listAry);
//var storage = storages.create("找英雄略图");
//var IMG = 加载图片(storage.get("path", "./img/rect_2.jpg"));
var IMG;
var thread = threads.start(function() {
var url = "https://www.autojs.org/assets/uploads/files/1540386817060-918021-20160416200702191-185324559.jpg";
IMG = images.load(url);
});
thread.join();
var img = images.copy(IMG);
var paint = new Paint;
paint.setTextAlign(Paint.Align.CENTER);
paint.setStrokeWidth(5);
paint.setStyle(Paint.Style.STROKE);
var data = {
translate: {
x: 0,
y: 0
},
scale: 1,
rotate: 0
};
//启动一个处理图片的线程
var imgProcess = threads.start(function() {
setInterval(() => {}, 1000);
});
//处理图片的函数,把任务交给图片处理线程处理
function processImg(process) {
imgProcess.setTimeout(() => {
try {
//处理图片
var result = process(IMG);
toastLog("OK");
//把处理后的图片设置到图片控件中
img = images.copy(result);
result.recycle();
} catch (e) {
toastLog(e)
};
}, 0);
}
ui.list.on("item_click", function(item, i) {
ui.run(() => {
ui.list.setVisibility(8);
});
switch (item.text) {
case "灰度化":
processImg(img => {
//灰度化
return images.grayscale(img);
});
break;
case "二值化":
processImg(img => {
var g = images.grayscale(img);
//二值化,取灰度为30到200之间的图片
var result = images.threshold(g, 100, 200);
g.recycle();
return result;
});
break;
case "自适应二值化":
processImg(img => {
var g = images.grayscale(img);
//自适应二值化,最大值为200,块大小为25
var result = images.adaptiveThreshold(g, 200, "MEAN_C", "BINARY", 25, 10);
g.recycle();
return result;
});
break;
case "RGB转HSV":
processImg(img => {
//RGB转HSV
return images.cvtColor(img, "BGR2HSV");
});
break;
case "模糊":
processImg(img => {
//模糊
return images.blur(img, [10, 10]);
});
break;
case "中值滤波":
processImg(img => {
//中值滤波
return images.medianBlur(img, 5);
});
break;
case "高斯模糊":
processImg(img => {
//高斯模糊
return images.gaussianBlur(img, [5, 5]);
});
break;
case "原图":
processImg(img => {
//高斯模糊
return images.copy(img);
});
break;
};
});
ui.but.click(function(v) {
setClip(JSON.stringify(点色));
toast("已复制\n"+JSON.stringify(点色));
});
ui.center.click(function(v) {
if (ui.list.visibility == 8) {
ui.run(() => {
ui.list.setVisibility(0);
});
} else {
ui.run(() => {
ui.list.setVisibility(8);
});
};
});
var 点色;
ui.canvas.on("draw", function(canvas) {
canvas.drawARGB(255, 127, 127, 127);
var w = canvas.getWidth();
var h = canvas.getHeight();
paint.setStrokeWidth(5);
paint.setStyle(Paint.Style.STROKE);
var matrix = new android.graphics.Matrix();
matrix.postRotate(data.rotate);
matrix.postScale(data.scale, data.scale);
matrix.postTranslate(data.translate.x, data.translate.y);
paint.setARGB(255, 0, 0, 0);
canvas.drawImage(img, matrix, paint);
paint.setStrokeWidth(2);
paint.setStyle(Paint.Style.FILL);
var size = 50;
paint.setTextSize(size);
paint.setARGB(255, 255, 0, 0);
canvas.drawText(String(Math.floor(device.width / data.scale)), w / 2, h * 0.1 + 0.365 * size, paint);
var S = 算坐标(w / 2, h / 2, data, img);
点色 = S;
paint.setStyle(Paint.Style.STROKE);
paint.setColor(S.color);
paint.setStrokeWidth(15);
canvas.drawCircle(w / 2, h / 2, 41, paint);
paint.setColor(反色(S.color));
paint.setStrokeWidth(5);
canvas.drawCircle(w / 2, h / 2, 50, paint);
var S1 = 算坐标(w / 2, h / 2 - 100, data, img);
var S2 = 算坐标(w / 2, h / 2 + 100 - 12.5, data, img);
var S3 = 算坐标(w / 2, h / 2 + 100 + 12.5, data, img);
//canvas.setMatrix(new android.graphics.Matrix());
paint.setStrokeWidth(1);
paint.setStyle(Paint.Style.FILL);
var size = 40;
paint.setTextSize(size);
paint.setColor(反色(S1.color));
canvas.drawText(S.x + "," + S.y, w / 2, h / 2 - 100 + 0.365 * size, paint);
paint.setColor(反色(S2.color));
canvas.drawText(S.color, w / 2, h / 2 + 100 - 12.5 + 0.365 * size, paint);
paint.setColor(反色(S3.color));
canvas.drawText(S.colorString, w / 2, h / 2 + 100 + 20 + 0.365 * size, paint);
});
function 算坐标(X, Y, data, img) {
try {
var X = X - data.translate.x,
Y = Y - data.translate.y;
var WE = weiyi([X, Y]);
//log(WE);
var YY = ydfx([X, Y]);
//log(YY);
var KY = YY - data.rotate;
var KK = kdfx(KY);
//log(KK);
var SS = getsd(WE / data.scale, KK);
//log(SS);
var x = Math.floor((0 <= SS[0] && SS[0] < img.getWidth()) ? SS[0] : (0 <= SS[0] ? img.getWidth() - 1 : 0));
var y = Math.floor((0 <= SS[1] && SS[1] < img.getHeight()) ? SS[1] : (0 <= SS[1] ? img.getHeight() - 1 : 0));
var color = images.pixel(img, x, y);
var colorString = colors.toString(color);
return {
x: x,
y: y,
color: color,
colorString: String(colorString)
};
} catch (e) {
return {
x: 0,
y: 0,
color: 0,
colorString: "0"
};
};
};
function 反色(color) {
return (-1 - colors.argb(0, colors.red(color), colors.green(color), colors.blue(color)));
};
var Touch = new Array;
var TouchData = new Array;
ui.canvas.setOnTouchListener(function(view, event) {
try {
switch (event.getAction() <= 2 ? event.getAction() : Math.abs(event.getAction() % 2 - 1)) {
case event.ACTION_DOWN:
var i = Math.floor(event.getAction() / 256);
var id = event.getPointerId(i);
var X = event.getX(i);
var Y = event.getY(i);
if (!id) {
bitmap = android.graphics.Bitmap.createBitmap(view.getWidth(), view.getHeight(), android.graphics.Bitmap.Config.ARGB_8888);
没有合适的资源?快使用搜索试试~ 我知道了~
AutoJs源码-图片查看(2)
共1个文件
js:1个
需积分: 4 0 下载量 125 浏览量
2022-11-15
12:51:19
上传
评论
收藏 4KB 7Z 举报
温馨提示
AutoJs源码-图片查看(2)。本资源购买前提醒:本源码都是实际autojs项目模板,安装好autojs直接运行即可打开。1、支持低版本autojs。2、资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!。3、安装过程详见具体资源,不会使用autojs谨慎下载
资源推荐
资源详情
资源评论
收起资源包目录
AutoJs源码-图片查看(2).7z (1个子文件)
AutoJs源码-图片查看(2).js 13KB
共 1 条
- 1
资源评论
[虚幻私塾】
- 粉丝: 335
- 资源: 1559
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功