gpt4 book ai didi

javascript - 使用 Javascript 将图像序列转换为视频

转载 作者:太空宇宙 更新时间:2023-11-04 06:03:14 25 4
gpt4 key购买 nike

我有 7 张图片,每张图片有 25 帧。我需要做的是逐帧浏览每个图像并将其显示为视频,可以通过播放、暂停和停止按钮控制。

我能做的是制作一个视频播放器,我可以轻松地导入视频并在其中播放、暂停、停止。我已经设计好了,但不知道如何从图像列表制作视频。

您可以在这些 URL 中查看图像:

- http://storage.googleapis.com/alyo/assignments/images/0.jpg- http://storage.googleapis.com/alyo/assignments/images/6.jpg

我们将不胜感激。

最佳答案

您可以使用 javscript setTimeout() 方法和像这样的 div 元素来实现它:

var left = 0;
var top = 0;
var minLeft = -512;
var minBottom = -288;
var xDecrement = 128;
var yDecrement = 72;
var myImage = document.getElementById("myImage");
var imgIndex = 0;
let imageList = ['http://storage.googleapis.com/alyo/assignments/images/0.jpg','http://storage.googleapis.com/alyo/assignments/images/6.jpg'];
var playbackStates = {"INIT":0, "RUNNING": 1 , "PAUSE":2};
var activeState = playbackStates.INIT;

myImage.style.backgroundPositionX = "0px";
myImage.style.backgroundPositionY = "0px";
var timerHandler = null;
var play = function(){

if(timerHandler){
clearTimeout(timerHandler);
if(activeState === playbackStates.PAUSE){
return;
}
}

timerHandler = setTimeout(function(){
let pos =parseFloat(myImage.style.backgroundPositionX.replace("px",""));
myImage.style.backgroundPositionX = ( pos - xDecrement) + "px";
if(pos <= -512){
myImage.style.backgroundPositionX ="0px";
pos =parseFloat(myImage.style.backgroundPositionY.replace("px",""));
myImage.style.backgroundPositionY = ( pos - yDecrement) + "px";
if(pos <= -288){
myImage.style.backgroundPositionY = "0px";
imgIndex ++;
if(imageList.length <= imgIndex) return;
myImage.style.backgroundImage = "url("+imageList[imgIndex]+")";
}
}
play();
}, 160)

};

myImage.style.backgroundImage = "url("+imageList[imgIndex]+")";
play();
activeState = playbackStates.RUNNING;

function pause(){
activeState = playbackStates.PAUSE;
}

function resume(){
activeState = playbackStates.RUNNING;
play();
}
<div style="width:128px;height:72px;" id="myImage"></div>
<input type="button" onclick="pause()" value="Pause"/>
<input type="button" onclick="resume()" value="Resume"/>

您可以将所有图片 url 添加到“imageList”数组中,还可以通过修改超时间隔来调整速度。

关于javascript - 使用 Javascript 将图像序列转换为视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57101399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com