如何在 js 中将图像 URI 组合成 gif?

Posted

技术标签:

【中文标题】如何在 js 中将图像 URI 组合成 gif?【英文标题】:How do I combine Image URIs into a gif in js? 【发布时间】:2022-01-06 20:07:45 【问题描述】:

所以我一直在互联网上搜索,似乎没有人知道我需要的答案,所以我来这里问我如何在纯 js 中制作 gif 创建器,没有库、jquery 或 npm。我找到了一些可以获取画布数据并将其转换为 URI 并下载它的代码,但我似乎找不到将 URI 组合在一起以制作 gif 的方法。我认为所有图像 + 图像到 gif、gif 到 URI 和图像到 URI 生成器都是可能的。这是我目前得到的代码。

<!DOCTYPE html>
<html>
<body>
<h2>Pixel Art Creator</h2>
<Title>Pixel Art Creator</Title>
<p id="txt"></p>
<canvas id="download_canvas"  ></canvas><br>  
<button onclick="downloadCanvas()">Download Me!</button>
<button onclick="getURL()">Get URL</button><br>
<p>Size</p><input type="range" min="1" max="200" value="10" id="size">
<script>


var sizeslider = document.getElementById("size");
var canvas = document.getElementById( 'download_canvas' );  
  
window.onload = function()  
    init();  
;  
  




sizeslider.oninput = function() 
canvas.width=canvas.height=this.value
init();



function init()  
    var context = canvas.getContext( '2d' );  
  
    context.beginPath();  
  
    // draw a blue rectangle 
    context.fillStyle = 'blue';  
    context.fillRect( 0, 0, 150, 100 );  
  
    // draw a red rectangle 
    context.fillStyle = 'red';  
    context.fillRect( 60, 50, 150, 100 );  







function downloadCanvas()  
    // get canvas data  
//    var image = canvas.toDataURL();  
  
    // create temporary link  
//    var tmpLink = document.createElement( 'a' );  
//    tmpLink.download = 'image.gif'; // set the name of the download file 
//    tmpLink.href = image; 
//    tmpLink.href = canvas.toDataURL();
  
    // temporarily add link to body and initiate the download  
//    document.body.appendChild( tmpLink );  
//    tmpLink.click();  
//    document.body.removeChild( tmpLink );  




    var tmpLink = document.createElement( 'a' );  
    tmpLink.download = 'image.gif'; // set the name of the download file 
    tmpLink.href = canvas.toDataURL();
    tmpLink.click();  





function getURL() 

    document.getElementById("txt").innerHTML = canvas.toDataURL();





</script>
</body>
</html>

那么有人可以帮我解决这三件事吗?

    查找该代码的原始来源 告诉我如何将 URI 或图像组合在一起 为我指明正确的地方,帮助我一起学习。

我在 js 方面不是最擅长的,我了解其中的一部分,但还有很多我不知道。

【问题讨论】:

【参考方案1】:

我找到了 CCapture.js,但没有用,所以我在 git hub 上找到了 jsgif,如果其他人有同样的问题,链接是 https://github.com/antimatter15/jsgif。

【讨论】:

以上是关于如何在 js 中将图像 URI 组合成 gif?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中将两个相对 URI 合二为一

如何在pandas中将多个相同类别的行组合成一个?

如何在xamarin android中将位图图像转换为gif?

如何在 db2 中将日期和时间组合成时间戳?

如何在 Oracle 中将多行组合成逗号分隔的列表? [复制]

如何在 Python 中将两个列表组合成字典? [复制]