我使用Three.js在数据库中保存和加载对象。我把对象作为JSON插入。
问题是JSON.stringify或toJSON()在base64中转换了图像url(纹理),我想保留http url。
这是最初的JSON:
{
"metadata": {
[...]
},
"geometries": [
{
[...]
}],
"materials": [
{
[...]
}],
"textures": [
{
[...]
}],
"images": [
{
"uuid": "4ED9CE3E-7C8A-4EB7-8CF8-D90B3527DF5F",
"url": "data:image/png;base64,iVBORw0KGgoATyuRZGZVREd0FAERRRBAEBEFwAYEyKqP/Rfozx+5fDYjvpeT/akv+n/J+/7eMjX9Ke8uojP4JVAYAyuj/Ld3Por7fPQ9i8d7vvr8LKNzLg/dn1u1hvQf3q/v92vRX0X/ [...]"
}],
"object": {
[...]
}
}
我们想要的JSON类型是:
{
"metadata": {
[...]
},
"geometries": [
{
[...]
}],
"materials": [
{
[...]
}],
"textures": [
{
[...]
}],
"images": [
{
"uuid": "4ED9CE3E-7C8A-4EB7-8CF8-D90B3527DF5F",
"url": "http://www.domain.com/picture/path.png"
}],
"object": {
[...]
}
}
有解决办法吗?
2条答案
按热度按时间zz2j4svz1#
在研究了JSON文件并获得纹理路径后,我做了以下操作:
现在它成功了!:)
nwlls2ji2#
我遇到了同样的问题,并通过覆盖
Source.toJSON()
解决了它,如下所示:或者,您可以使用
this.data.getAttribute('src')
存储图像的相对URL。