【问题标题】:THREE.js: POST request URL to ImageLoader?THREE.js:向 ImageLoader 发布请求 URL?
【发布时间】:2018-12-20 05:48:39
【问题描述】:

我正在使用 THREE.js r98。我必须使用一些返回图像或纹理作为响应的有效负载发出 POST 请求,并且我想将此 API URL 与 ImageLoader 一起使用,将图像渲染到画布上。我不确定 ImageLoader 是否支持这一点。使用来自 POST 请求的图像响应并将其加载到网格上的任何解决方法,添加到场景中。我正在使用以下适用于静态图像 URL 的代码

var imgLoader = new THREE.ImageLoader();
  imgLoader.load(imgPath, function(image) {
    //do stuff with image like loading onto mesh etc    
  });

我尝试使用 ajax 调用该 API,尝试转换为 base64 以加载到画布上但不起作用(Weird characters in image response of POST request

【问题讨论】:

    标签: ajax image canvas three.js


    【解决方案1】:

    您尝试执行的操作不适用于 three.jsTHREE.ImageLoader 将给定的 URL 分配给 HTML5 图像元素的 src 属性,该属性始终触发 GET 请求。除此之外,THREE.FileLoader 也只执行GET 请求。

    所以看起来您必须编写自己的自定义加载程序才能满足您的需求。

    【讨论】:

    • 我在收到来自 API 的响应后尝试使用 HTML5 Image 元素。 onload 甚至没有被触发。尝试转换base64和blob,没有成功。
    • 你能分享你的代码作为一个活生生的例子吗? jsfiddle.net/f2Lommf5
    • POST 请求需要授权 ID 和其他数据才能工作。我无法在小提琴中模拟奇怪的字符作为响应。 API 不能在应用程序之外工作。
    • 太糟糕了。我建议您接受答案,因为“奇怪字符”的问题在不同的帖子中进行了跟踪。您的问题与three.js无关。
    • 我是合作者之一,我可以肯定地告诉您,您的用例没有 API ;)
    猜你喜欢
    • 2023-03-07
    • 1970-01-01
    • 2019-06-08
    • 2011-09-17
    • 1970-01-01
    • 2017-12-03
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多