Get rendered image as data url from the viewer.

This commit is contained in:
Viktor Kovacs 2021-03-31 11:49:02 +02:00
parent 0c03fb3bca
commit 4acbf3046c

View File

@ -101,7 +101,7 @@ OV.Viewer = class
};
this.renderer = new THREE.WebGLRenderer (parameters);
this.renderer.setClearColor ('#ffffff', 1);
this.renderer.setClearColor ('#ffffff', 1.0);
this.renderer.setSize (this.canvas.width, this.canvas.height);
this.scene = new THREE.Scene ();
@ -131,9 +131,14 @@ OV.Viewer = class
Resize (width, height)
{
let innerSize = OV.GetInnerDimensions (this.canvas, width, height);
this.camera.aspect = innerSize.width / innerSize.height;
this.ResizeRenderer (innerSize.width, innerSize.height);
}
ResizeRenderer (width, height)
{
this.camera.aspect = width / height;
this.camera.updateProjectionMatrix ();
this.renderer.setSize (innerSize.width, innerSize.height);
this.renderer.setSize (width, height);
this.Render ();
}
@ -372,4 +377,23 @@ OV.Viewer = class
this.light = new THREE.DirectionalLight (0x888888);
this.scene.add (this.light);
}
GetImageAsDataUrl (width, height)
{
let originalSize = null;
if (width && height) {
originalSize = new THREE.Vector2 ();
this.renderer.getSize (originalSize);
this.ResizeRenderer (width, height);
}
this.Render ();
let url = this.renderer.domElement.toDataURL();
if (originalSize !== null) {
this.ResizeRenderer (
parseInt (originalSize.x, 10),
parseInt (originalSize.y, 10)
);
}
return url;
}
};