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
});
};
2 个回复
AzureonTang
赞同来自: 1569322907用户
短大人
赞同来自:
第一种:如果图片资源少的话,直接就做成双份,换不一样的名字加载。
第二种:资源多或者不确定那个要同时做成Texture2D和texture的话,就程序动态生成。
1.加载成texture
2.用Sprite画出来
3.sp转url;
dataUrltoBlob函数(网上就能找到)
4.这时就有个新生成的URL,因为这个URL没有后缀,所以加载时要写上类型
5.接下来回调,卸载之前的资源
6.加载Texture2D
这样就原图片地址是个Texture2D,生成的URL地址是个Texture