[]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显示不出来 应该怎么修改?
{
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显示不出来 应该怎么修改?
没有找到相关结果
已邀请:
要回复问题请先登录
1 个回复
missccq25
赞同来自:
loadImage方法进行加载 不知道有没有更好的方法