/*
软件作者:https://xuhss.com/oxox/pro
*/
"ui";
/*
本文主要介绍了。bitmap的getPixels 各参数的作用。
参数
pixels 接收位图颜色值的数组
offset 写入到pixels[]中的第一个像素索引值
stride pixels[]中的行间距个数值(必须大于等于位图宽度)。可以为负数
x 从位图中读取的第一个像素的x坐标值。
y 从位图中读取的第一个像素的y坐标值
width 从每一行中读取的像素宽度
height 读取的行数
异常
IilegalArgumentExcepiton 如果x,y,width,height越界或stride的绝对值小于位图宽度时将被抛出。
ArrayIndexOutOfBoundsException 如果像素数组太小而无法接收指定书目的像素值时将被抛出。
*/
/*
var x=0,y=0;
var width=W/2,height=H/2;
//坐标宽高的区域。
var offset=0,stride=width;
//从数组的索引offset处开始写入。偏移stride个空位写入一行
var length=offset+stride*height;
var pixels = util.java.array("int",length );
//log(bitmap.getPixels.toString());
bitmap.getPixels(pixels,offset,stride,x,y,width,height);
//log(Bitmap.createBitmap.toString());
//log(pixels);
var bitmap2=Bitmap.createBitmap(pixels,width,length/width,Bitmap.Config.ARGB_8888);
*/
importClass(android.graphics.BitmapFactory);
importClass(android.graphics.Paint);
importClass(android.graphics.Bitmap);
var SeekBarLayout = (function() {
util.extend(SeekBarLayout, ui.Widget);
function SeekBarLayout() {
ui.Widget.call(this);
this.Magnification = 1;
this.Difference = 0;
this.defineAttr("text", (view, attr, value, defineSetter) => {
view._text.setText(String(value));
});
this.defineAttr("range", (view, attr, value, defineSetter) => {
value = String(value);
let ary = String(value).split(" ");
let ASumStr = ary[0];
let BSumStr = ary[1];
let AMinSum = parseFloat(ASumStr);
let AMaxSum = parseFloat(ASumStr.replace(".", ""));
let A_M = AMaxSum / AMinSum;
let BMinSum = parseFloat(BSumStr);
let BMaxSum = parseFloat(BSumStr.replace(".", ""));
let B_M = BMaxSum / BMinSum;
this.Magnification = A_M >= B_M ? A_M : B_M;
let MinSum = AMinSum <= BMinSum ? AMinSum : BMinSum;
let MaxSum = AMinSum <= BMinSum ? BMinSum : AMinSum;
let MinSumStr = AMinSum <= BMinSum ? ASumStr : BSumStr;
let MaxSumStr = AMinSum <= BMinSum ? BSumStr : ASumStr;
this.Difference = MinSum;
view._Duration_Min.setText(MinSumStr);
view._Duration_Max.setText(MaxSumStr);
view._Duration_seekbar.setMax(this.Magnification * (MaxSum - MinSum));
});
this.defineAttr("sum", (view, attr, value, defineSetter) => {
let Sum = parseFloat(String(value));
view._CurrentDuration.setText(String(value));
let _Sum = this.Magnification * (Sum - this.Difference);
view._Duration_seekbar.setProgress(_Sum);
});
this.defineAttr("onChang", (view, attr, value, defineSetter) => {
var _myFun = eval(value);
view._Duration_seekbar.setOnSeekBarChangeListener({
onProgressChanged: (seekBar, progress, fromUser) => {
view._CurrentDuration.setText(String(Math.floor((progress / this.Magnification + this.Difference) * 100) / 100));
if (fromUser) {
_myFun(view._text, Math.floor(progress / this.Magnification + this.Difference));
}
},
onStartTrackingTouch: function(seekBar) {},
onStopTrackingTouch: function(seekBar) {
//eval(value+"(view._text,progress)");
}
});
});
};
SeekBarLayout.prototype.render = function() {
return (
<vertical margin="5" >
<text id="_text" w="auto" text="A" textSize="15"gravity="center" layout_gravity="center"/>
<frame w="*">
<text id="_Duration_Min" w="auto" text="0"margin="10 0 0 0" gravity="center" layout_gravity="left"/>
<text id="_CurrentDuration" w="auto" text="0"margin="0 0 0 0" gravity="center" layout_gravity="center"/>
<text id="_Duration_Max" w="auto" text="0"margin="0 0 10 0" gravity="center" layout_gravity="right"/>
</frame>
<seekbar id="_Duration_seekbar" layout_weight="1"/>
</vertical>
);
};
SeekBarLayout.prototype.getSum = function() {
return this.view._Duration_seekbar.getProgress();
};
ui.registerWidget("seekbar-layout", SeekBarLayout);
return SeekBarLayout;
})();
var w = device.width;
ui.layout(
<vertical>
<canvas id="canvas" w="{{w}}px"h="{{w}}px"/>
<text id="text" text="参数正确" textSize="10" w="*"h="30"/>
<scroll layout_weight="1">
<vertical margin="5">
<vertical bg="#e0e0e0" margin="5">
<text text="就下面这6道参数" textSize="17" gravity="center"w="*"/>
<seekbar-layout id="s1" w="*" h="auto" text="offset" range="0 {{w}}" sum="1" onChang="setOffset"/>
<seekbar-layout id="s2" w="*" h="auto" text="stride" range="{{w}} {{w*2}}" sum="{{w}}" onChang="setStride"/>
<seekbar-layout id="s3" w="*" h="auto" text="x" range="0 {{w}}" sum="0" onChang="setX"/>
<seekbar-layout id="s4" w="*" h="auto" text="y" range="0 {{w}}" sum="0" onChang="setY"/>
<seekbar-layout id="s5" w="*" h="auto" text="width" range="0 {{w}}" sum="{{w}}" onChang="setWidth"/>
<seekbar-layout id="s6" w="*" h="auto" text="height" range="0 {{w}}" sum="{{w}}" onChang="setHeight"/>
</vertical>
</vertical>
</scroll>
</vertical>
);
var offset,stride,x,y,width,height;
var MainImg;
var MainBitmap;
var imgBitmap;
var url = "https://www.autojs.org/assets/uploads/files/1540386817060-918021-20160416200702191-185324559.jpg";
//黑色画笔。
var paint = new Paint;
var paint1 = new Paint;
paint1.setTextSize(75);
//paint.setTextAlign(Paint.Align.CENTER);
//paint.setStrokeWidth(2);
//paint.setStyle(Paint.Style.STROKE);
//paint.setStyle(Paint.Style.FILL);
//paint.setARGB(255, 0, 0, 0);
//paint.setColor(colors.GRAY);
//paint.setTextSize(75);
var canvasRect = new android.graphics.RectF;
var canvasMatrix = new android.graphics.Matrix;
ui.canvas.post(function() {
threads.start(function(){
MainImg=images.load(url);
MainBitmap=MainImg.getBitmap();
let v = ui.canvas;
//var rect=new android.graphics.Rect;
//ui.canvas.getBoundsOnScreen(canvasRect);
let w = v.getWidth(),
h = v.getHeight();
canvasRect.set(new android.graphics.RectF(0, 0, w, h));
if (MainImg) {
canvasMatrix.setRectToRect(new android.graphics.RectF(0, 0, MainImg.getWidth(), MainImg.getHeight()), new android.graphics.RectF(canvasRect), android.graphics.Matrix.ScaleToFit.CENTER);
}else{
toastLog("加载图片失败");
ui.finish();
};
let W=MainImg.width,H=MainImg.height
offset=0;
stride=W;
x=0;
y=0;
width=W;
height=H;
var length=offset+stride*height;
var pixels = util.java.array("int",length );
//log(bitmap.getPixels.toString());
MainBitmap.getPixels(pixels,offset,stride,x,y,width,height);
//log(Bitmap.createBitmap.toString());
//log(pixels);
imgBitmap=Bitmap.createBitmap(pixels,width,length/width,Bit
没有合适的资源?快使用搜索试试~ 我知道了~
AutoJs源码-getPixels参数详解
共1个文件
js:1个
需积分: 4 0 下载量 96 浏览量
2022-11-14
23:59:43
上传
评论
收藏 4KB 7Z 举报
温馨提示
AutoJs源码-getPixels参数详解。本资源购买前提醒:本源码都是实际autojs项目模板,安装好autojs直接运行即可打开。1、支持低版本autojs。2、资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!。3、安装过程详见具体资源,不会使用autojs谨慎下载
资源推荐
资源详情
资源评论
收起资源包目录
AutoJs源码-getPixels参数详解.7z (1个子文件)
AutoJs源码-getPixels参数详解.js 16KB
共 1 条
- 1
资源评论
[虚幻私塾】
- 粉丝: 335
- 资源: 1559
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功