js實現GIF圖片的分解和合成

無意中看到一篇文章寫得是關于純前端處理GIF圖片的問題,感覺挺有意思的所以自己也實現了一下;

創新互聯公司是一家專業提供城關企業網站建設,專注與成都做網站、成都網站制作、H5開發、小程序制作等業務。10年已為城關眾多企業、政府機構等服務。創新互聯專業網站建設公司優惠進行中。

主要用到的有兩個第三方庫:合成GIF圖片的gif.js和分解的libgif.js;

分解GIF

1. 引入Git庫

import SuperGif from './libgif.js'

2. 處理圖片

var file = e.target.files[0];
 console.log(file.type.indexOf('image/gif'));
 load_gif(file);
function load_gif(gif_source) {
  var gifImg = document.getElementById('gifImg');
  // gif庫需要img標簽配置下面兩個屬性
  gifImg.setAttribute('rel:animated_src', URL.createObjectURL(gif_source))
  gifImg.setAttribute('rel:auto_play', '0')
 
  // 新建gif實例
  var rub = new SuperGif({ gif: gifImg } );
 
  var running = false;
  rub.load(function(){
  var img_list = [];
  var j = 0;
  console.log(rub.get_length());
  for (var i=1; i <= rub.get_length(); i++) {
  // 遍歷gif實例的每一幀
  rub.move_to(i);
 
  var imgImage = new Image();
  //canvas生成base64圖片數據
  imgImage.src = rub.get_canvas().toDataURL('image/jpeg',0.8);
  }
 }

合成GIF圖片

1. 引入Git庫

import GIF from './gif.js'

2. 圖片合成

var gif = new GIF({
  workers: 2,
  quality: 10,
  workerScript: 'js/gif.worker.js'
});
var j = 0;
 
var canvas= document.createElement("canvas");
var ctx = tCanvas.getContext('2d');
 
for (var i=1; i <= len; i++) {
 
 var imgImage = new Image();
 imgImage.src = img;
 imgImage.onload = function (e) {
 
 //Canvas繪制圖片
 canvas.width = width;
 canvas.height = height;
 console.log(width,height)
 //鋪底色
 ctx.fillStyle = "#fff";
 ctx.fillRect(0, 0, canvas.width, canvas.height);
 ctx.drawImage(imgImage, 0, 0, width, height);
 
 
 gif.addFrame(canvas,{copy:true,delay:50});
 j++;
 //圖片
 if(j>=len) {
 gif.render()
 };
 }
}
gif.on('finished', function(blob) {
 //生成圖片鏈接
  var url = URL.createObjectURL(blob);
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。

新聞標題:js實現GIF圖片的分解和合成
網站路徑:http://m.kartarina.com/article2/pphooc.html

成都網站建設公司_創新互聯,為您提供網站導航移動網站建設App設計電子商務標簽優化云服務器

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作
主站蜘蛛池模板: 自拍偷在线精品自拍偷无码专区| 亚洲中文字幕无码爆乳app| 日韩人妻系列无码专区| 久久精品无码一区二区app| 亚洲中文字幕久久精品无码2021 | 日韩AV无码一区二区三区不卡| 国产网红主播无码精品| 日韩精品无码一本二本三本 | 精品久久久久久无码中文字幕一区| 中文字幕无码无码专区| 精品人妻无码区二区三区| 手机在线观看?v无码片| 999久久久无码国产精品| 色综合AV综合无码综合网站| 加勒比无码一区二区三区| 无码人妻精品一区二区三区久久| 日韩精品成人无码专区免费| 国产办公室秘书无码精品99| 免费无码H肉动漫在线观看麻豆| 国产高清不卡无码视频| 人妻丰满AV无码久久不卡| 亚洲国产精品无码中文字| 亚洲不卡无码av中文字幕| 中文字幕人妻三级中文无码视频| 亚洲av无码专区国产不乱码| 亚洲中文字幕无码av| 国产免费无码一区二区| 久久亚洲AV无码精品色午夜麻| 国产成人无码区免费网站| 成人免费无遮挡无码黄漫视频| 亚洲精品无码永久在线观看男男| 亚洲AV永久青草无码精品| 国产成人A亚洲精V品无码| 无码人妻精品一区二区蜜桃AV| 亚洲中文字幕久久无码| 日韩av无码久久精品免费| 久久精品中文字幕无码| 亚洲AV无码久久精品成人 | 无码一区二区三区视频| 亚洲精品无码乱码成人| 国产AV无码专区亚洲AV男同|