大侠
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

72 lines
2.5 KiB

import { SpriteFrame, Texture2D } from "cc";
export default class FileTools{
// base64生成Texture2D
static base64ToTexture2D(base64: string, callback: (this: void, texture: Texture2D) => void) {
// if (base64) {
// var img = new Image();
// img.onload = function () {
// var texture = new Texture2D();
// texture.initWithElement(img);
// texture.handleLoadedTexture();
// if (callback) callback(texture);
// }
// img.onerror = function (err) {
// }
// if ((<any>base64).startsWith !== undefined && (<any>base64).startsWith("data:image")) {
// img.src = base64;
// } else {
// img.src = "data:image/png;base64," + base64;
// }
// } else {
// if (callback) callback(null);
// }
}
// base64生成cc.SpriteFrame
static base64ToSpriteFrame(base64: string, callback: (this: void, spriteFrame: SpriteFrame) => void) {
// this.base64ToTexture2D(base64, (texture: Texture2D) => {
// if (texture) {
// var newframe = new SpriteFrame(texture);
// if (callback) callback(newframe);
// } else {
// if (callback) callback(null);
// }
// });
}
static getBase64ImageByCCTexture(texture: Texture2D, callback) {
//this.getBase64ImageByUrl(texture.url, callback);
}
static getBase64ImageByCCSpriteFrame(texture: SpriteFrame, callback) {
// this.getBase64ImageByUrl(texture.getTexture().url, callback);
}
static getBase64ImageByUrl(url: string, callback) {
var canvas = document.createElement("CANVAS");
var ctx = canvas["getContext"]('2d');
var img = new Image;
img.crossOrigin = 'Anonymous';
//'res/raw-assets/' +
img.src = url;
img.onload = function () {
canvas["height"] = img.height;
canvas["width"] = img.width;
ctx.drawImage(img, 0, 0);
var dataURL = canvas["toDataURL"]('image/png');
canvas = null;
if (callback) callback(dataURL);
}
}
static arrayBuffer(_result:string): ArrayBuffer {
let charArr: Array<any> = [];
for (var i = 0; i < _result.length; i++) { // 取出文本的charCode(10进制)
charArr.push(_result.charCodeAt(i));
}
let array: Uint8Array = new Uint8Array(charArr);
return array;
}
}