以类似视频的方式在浏览器中渲染多个图像
rendering multiple images in a browser in a video like fashion
我有大约500张图像,它们之间的差异非常小。它们的大小都一样。因此,当一个接一个地快速观看时,它们形成了一种视频。
我正在寻找一种在浏览器中显示它们的方法(来自磁盘的html文件),所有这些都在同一个位置,以形成视频效果。我希望能够播放、暂停、停止、播放得更快、播放得更慢(如果可能的话,还可以进行更多的控制,比如去特定的时间(例如,图像47,如果有滑块的话;如果只有播放、暂停,快速和慢速都可以)。
我不是程序员,但我认为javascript可能会做到这一点。如果有更好的技术,请将我重定向到它。我只是在寻找一个按我的意愿工作的解决方案,但我不知道javascript。这肯定是以前做过的,所以我很乐意接受一个可行的解决方案。
尽管您似乎正在走转换路线,但这里有一个使用javascript的解决方案,允许暂停、跳转到帧和更改速度(我没有为此使用滑块[或为任何一个提供漂亮的UI]):
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body onload="launch()">
</body>
<script>
var frames=['frame1.png','frame2.png','frame3.png','frame4.png','frame5.png','frame6.png','frame7.png','frame8.png','frame9.png','frame10.png'];
var playing=true;
var on_frame=0;
var timer;
function launch(){
document.body.innerHTML='<img id="film" src="frames/'+frames[on_frame]+'"/><br/><button id="actionbutton">Play</button><button onclick="stop()">Stop</button><br/>Milliseconds between frames:<input type="text" id="framerate" value="50"/><br/>Go to frame:<input type="text" id="gotoframe"><button onclick="goFrame(document.getElementById(''gotoframe'').value);">Go</button>';
document.getElementById('actionbutton').addEventListener('click',play);
play();
}
function change(){
document.getElementById('film').src='frames/'+frames[on_frame]; //I have my images in a folder named frames
on_frame++;
if(on_frame==frames.length){on_frame=0;}
if(playing){
timer=setTimeout(change,document.getElementById('framerate').value?document.getElementById('framerate').value:50);
}
}
function play(){
document.getElementById('actionbutton').removeEventListener('click',play);
document.getElementById('actionbutton').addEventListener('click',pause);
document.getElementById('actionbutton').innerHTML='Pause';
clearInterval(timer);
playing=true;
change();
}
function pause(){
document.getElementById('actionbutton').removeEventListener('click',pause);
document.getElementById('actionbutton').addEventListener('click',play);
document.getElementById('actionbutton').innerHTML='Play';
playing=false;
}
function stop(){
document.getElementById('actionbutton').removeEventListener('click',pause);
document.getElementById('actionbutton').addEventListener('click',play);
document.getElementById('actionbutton').innerHTML='Play';
playing=false;
on_frame=0;
}
function goFrame(x){
if((x>-1)&&(x<=frames.length)){
on_frame=x;
if(!playing){document.getElementById('film').src='frames/'+frames[on_frame];}
}
else{
alert('Out of range');
}
}
</script>
</html>
相关文章:
- 使图像在单击时展开到不大于浏览器
- 防止“;jQuery(html)"防止触发浏览器请求图像和其他参考内容
- 用于图像和基于浏览器的图表的图表框架
- 如何在调整浏览器大小时将图像保持在适当位置
- 来自流星模板的 HTML 图像链接未由浏览器呈现
- 使用现有代码更改基于浏览器宽度的图像url
- 阻止浏览器缓存上载的图像
- 在Android浏览器中将图像渲染为数据流
- 从imgur api的另一个浏览器拖放图像
- 在 Web 浏览器中优先下载图像的技术
- 灯箱类型的东西,使图像成为浏览器高度的百分比
- 谷歌浏览器控制台,打印图像
- 如何在浏览器宽度/高度变化时动态调整图像网格的大小
- 接受从另一个浏览器窗口拖放图像
- 如何在上传前在浏览器中去除图像元数据(javascript)
- 如何在浏览器中呈现动态图像
- 将svg保存到磁盘作为png图像浏览器差异
- 有没有办法替换尚未加载的默认图像浏览器图标
- 如何将所有 HTML(包括 SVG 和底层 CSS/JS)转换为 PNG 或图像浏览器端
- 简单的图像浏览器在ckeditor