有没有办法控制缩略图的呈现方式?
Is there a way to control how the thumbnail are rendered?
使用导数API我发现生成的缩略图很暗,这是查看器的屏幕截图:
这里是自动生成的缩略图的截图:
上传的文件是STL文件。
如何生成看起来像预览的缩略图?
谢谢!
不幸的是,目前无法控制使用衍生工具生成缩略图 API。
我们有一个渲染即服务 API 将在某个时候发布,但目前还不可用。
目前唯一的解决方法是在查看器中加载模型并截屏。有一个用于生成屏幕截图的 API,请参阅 my blog post,因此该过程可以自动化,但模型必须在浏览器中呈现。
希望对您有所帮助
在 Instructables.com(Autodesk 的属性之一),我们遇到了与 Derivatives API 相同的问题;我们还需要比 Forge API.
提供的 400x400 图片更大的缩略图
如果您使用的是 Nodejs,则可以使用我们的 open-sourced 缩略图生成器,它可以非常快速地在服务器端生成 STL 缩略图:
https://www.npmjs.com/package/node-stl-thumbnailer
这里的方法是在服务器端创建一个threejs场景,然后使用CanvasRenderer渲染它,node-canvas。因此,它不依赖于网络浏览器、GPU 或其他 front-end 技术。因为它不是光线追踪器,所以它不会像完整的渲染服务那样带来计算开销,但它也有局限性。不支持阴影、光照或材质等问题。
演示项目展示了一个快速的 expressjs 应用程序,它将接受 URL 的 STL,以及 return 同步请求大小的缩略图。
代码如下所示:
// index.js
var StlThumbnailer = require('node-stl-thumbnailer');
var app = require("express")();
app.get('/thumbnailer', function(req, res, next) {
var thumbnailer = new StlThumbnailer({
url: req.query.url,
requestThumbnails: [
{
width: 500,
height: 500,
}
]
})
.then(function(thumbnails){
// thumbnails is an array (in matching order to your requests) of Canvas objects
// you can write them to disk, return them to web users, etc
thumbnails[0].toBuffer(function(err, buf){
res.contentType('image/png');
res.send(buf)
})
})
.catch(function(err){
res.status(500);
res.send("Error thumbnailing: "+err);
});
});
app.listen(3000, function () {
console.log('Listening on port 3000\n')
});
这是一个示例 "rendering":
Sample Thumbnailer Output
使用导数API我发现生成的缩略图很暗,这是查看器的屏幕截图:
这里是自动生成的缩略图的截图:
上传的文件是STL文件。
如何生成看起来像预览的缩略图?
谢谢!
不幸的是,目前无法控制使用衍生工具生成缩略图 API。
我们有一个渲染即服务 API 将在某个时候发布,但目前还不可用。
目前唯一的解决方法是在查看器中加载模型并截屏。有一个用于生成屏幕截图的 API,请参阅 my blog post,因此该过程可以自动化,但模型必须在浏览器中呈现。
希望对您有所帮助
在 Instructables.com(Autodesk 的属性之一),我们遇到了与 Derivatives API 相同的问题;我们还需要比 Forge API.
提供的 400x400 图片更大的缩略图如果您使用的是 Nodejs,则可以使用我们的 open-sourced 缩略图生成器,它可以非常快速地在服务器端生成 STL 缩略图:
https://www.npmjs.com/package/node-stl-thumbnailer
这里的方法是在服务器端创建一个threejs场景,然后使用CanvasRenderer渲染它,node-canvas。因此,它不依赖于网络浏览器、GPU 或其他 front-end 技术。因为它不是光线追踪器,所以它不会像完整的渲染服务那样带来计算开销,但它也有局限性。不支持阴影、光照或材质等问题。
演示项目展示了一个快速的 expressjs 应用程序,它将接受 URL 的 STL,以及 return 同步请求大小的缩略图。
代码如下所示:
// index.js
var StlThumbnailer = require('node-stl-thumbnailer');
var app = require("express")();
app.get('/thumbnailer', function(req, res, next) {
var thumbnailer = new StlThumbnailer({
url: req.query.url,
requestThumbnails: [
{
width: 500,
height: 500,
}
]
})
.then(function(thumbnails){
// thumbnails is an array (in matching order to your requests) of Canvas objects
// you can write them to disk, return them to web users, etc
thumbnails[0].toBuffer(function(err, buf){
res.contentType('image/png');
res.send(buf)
})
})
.catch(function(err){
res.status(500);
res.send("Error thumbnailing: "+err);
});
});
app.listen(3000, function () {
console.log('Listening on port 3000\n')
});
这是一个示例 "rendering":
Sample Thumbnailer Output