[]htmlCanvas 像素级操作

function showSprite()
{
Laya.loader.load("../src/img/testImg.png",Laya.Handler.create(this,graphicsImg));
}

function graphicsImg()
{
//临时sprite
var img = new Laya.Sprite();
//img.graphics.drawTexture(Laya.loader.getRes(("../src/img/testImg.png"),0,0));

//获取图片资源
var tex = Laya.loader.getRes("../src/img/testImg.png");

//获取临时sprite的htmlCanvas
var htmlCanvas = img.drawToCanvas(tex.width,tex.height,0,0);

//获取临时sprite的 原生Canvas
var c = htmlCanvas.getCanvas();
var ctx = c.getContext("2d");

//获取canvas的imgData
var imgData = ctx.getImageData(0,0,ctx.canvas.width,ctx.canvas.height);
//将图片的数据进行复制到canvas的imgData

var texData = tex.getPixels(0,0,tex.width,tex.height);
for (var i=0;i<imgData.data.length;i+=4)
{
    imgData.data[i] = texData[i];
    imgData.data[i+1] = texData[i+1];
    imgData.data[i+2] = texData[i+2];
    imgData.data[i+3] = texData[i+3];
 }

ctx.putImageData(imgData,0,0);

//创建新的sprite
var imgNew = new Laya.Sprite();
//新的sprite 进行绘制
imgNew.graphics.drawTexture(new Texture(htmlCanvas),0,0);
//添加到舞台
Laya.stage.addChild(imgNew);

}

需要进行像素级的操作 这样写 sprite显示不出来 应该怎么修改?
已邀请:

missccq25

赞同来自:

最后的解决方法 是canvas转base64 在用sprite的
loadImage方法进行加载 不知道有没有更好的方法

要回复问题请先

商务合作
商务合作