Я хотел бы экспортировать 2D-изображение моей сцены, нажав кнопку на моей html-странице. Какую строку кода я должен добавить в свою функцию? похоже не получается и скачать образ. (Я использую хром в качестве браузера)
const exportLink = document.getElementById( 'exportLink' );
exportLink.addEventListener( 'click', () => {
rendererExport.render( scene, camera );
const dataURL = rendererExport.domElement.toDataURL( 'image/png' );
exportLink.href = dataURL;
exportLink.download = 'export.png';
} );
}
вот моя функция рендеринга
function render() {
renderer.render(scene, camera);
document.getElementById("colore").onclick= function(){
somma= +slider.value + +slider1.value + +slider2.value + +slider3.value + +slider4.value;
console.info(somma);
if (somma<=70){
customMaterial1.uniforms.glowColor.value.set( 0x668072 );
customMaterial2.uniforms.glowColor.value.set( 0x4f6749 );
customMaterial3.uniforms.glowColor.value.set( 0x491520 );
customMaterial4.uniforms.glowColor.value.set( 0xb3c753 );
customMaterial5.uniforms.glowColor.value.set( 0xe61f59 );
}
}
Ваша кнопка настроена на выполнение функции JavaScript, которой вы поделились. Однако при загрузке необходимо выполнить действие навигации, чтобы запустить загрузку. Обычный способ сделать это — использовать временный якорь (<a>
).
const exportLink = document.getElementById( 'exportLink' );
exportLink.addEventListener( 'click', () => {
rendererExport.render( scene, camera );
const dataURL = rendererExport.domElement.toDataURL( 'image/png' );
let a = document.createElement( 'a' ); // Create a temporary anchor.
a.href = dataURL;
a.download = 'export.png';
a.click(); // Perform the navigation action to trigger the download.
} );
@LabSintesi exportLink
может быть чем угодно. Вы назначили ему реагировать на события click
своей функцией, но не более того. В моем коде я создаю новый элемент, который соответствует: <a href = "--the dataURL--" download = "export.png"></a>
, который затем нажимается. Если это не запускает загрузку, проверьте консоль (F12
) на наличие ошибок или проверьте, не блокирует ли ваш браузер загрузку.
Спасибо за ваш ответ. Он по-прежнему не запускает загрузку снимка. Мой элемент с идентификатором «exportLink» — это <p>. может из-за этого не работает?