我正在将一堆png文件上传到AWS,并在需要时获取它们。上传时,我通过fs流式传输数据,下载时我将来自AWS的数据作为响应进行管道传输。
无论如何,当我在客户端上获取数据时,它将返回为具有以下结构的字符串:
�PNG
IHDR�x�� IDATx���_��[�����1���s�?��9u����h�...
如何将其加载到纹理中?我尝试过使用this(也是mrdoob here推荐的)
但是它导致Image抛出一个无法提供信息的错误,并且永远不会调用onload。
let image = new Image();
let texture = new THREE.Texture();
image.onerror = function(e) {
//enters here
}
image.onload = function(e) {
//never here
texture.image = texture_image;
texture.needsUpdate = true;
}
image.src = myFetchedPNGData;
从这些数据中创建THREE.Texture的正确方法是什么?
修改 以下是获取数据的请求:
let requestt = new XMLHttpRequest();
request.open('POST', url, true);
request.setRequestHeader('Content-Type', 'application/json');
request.addEventListener('load', (event) => {
// Here myFetchedPNGData recides in event.target.response
}, false);
request.addEventListener('error', (event) => {
//do error handling
}, false);
onProgress && request.addEventListener('progress', (event) => {
//Handle request
}, false);
request.send(...);