[LayaAir 2.0]Texture如何转换成Texture2D有人搞过吗

Texture如何转换成Texture2D有人搞过吗
已邀请:
Texture类型有个bitmap的参数,它是Texture2D的,uv的位置宽高在uvrect数组中

短大人

赞同来自:

这个之前我也碰到了,试了好多方法没成功,最后想到的解决方法有两种:
第一种:如果图片资源少的话,直接就做成双份,换不一样的名字加载。
第二种:资源多或者不确定那个要同时做成Texture2D和texture的话,就程序动态生成。
1.加载成texture 
2.用Sprite画出来
3.sp转url;
var htmlCanvas = sp.drawToCanvas(width,height,0,0)
var canvas = htmlCanvas.getCanvas();
var base64 = canvas.toDataURL("image/png");
var blob = dataURLtoBlob(base64);
var url = Browser.window.URL.createObjectURL(blob);
dataUrltoBlob函数(网上就能找到)
function dataURLtoBlob(base64Data):*{		
var byteString;
if (base64Data.split(",")[0].indexOf("base64") >= 0)
byteString = Browser.window. atob(base64Data.split(",")[1]);
else
byteString = Browser.window.unescape(base64Data.split(",")[1]);
var mimeString = base64Data
.split(",")[0]
.split(":")[1]
.split(";")[0];
var ia = new Uint8Array(byteString.length);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
return new Browser.window.Blob([ia], {
type: mimeStringp
});
};
4.这时就有个新生成的URL,因为这个URL没有后缀,所以加载时要写上类型
Laya.loader.load([{url:url,type:"image"}], Handler.create(this,function(){
//接下来
}));
5.接下来回调,卸载之前的资源
Laya.loader.clearRes(oldUrl);
6.加载Texture2D
 
这样就原图片地址是个Texture2D,生成的URL地址是个Texture

要回复问题请先

商务合作
商务合作