欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    by from

    本文可全文轉載,但需要保留原作者和出處。

    一、這兩天做了個可傳圖可寫臺詞GIF生成器

    這兩天晚上在家做了個可以自己傳圖,可以自己寫臺詞的GIF生成器。

    您可以狠狠地點擊這里:Gif表情自定義字幕在線生成器

    可以用提供的模板生成GIF表情,例如,我們選擇“今天的風甚為喧鬧”,我們可以自己修改臺詞,修改GIF這一幀延遲時間。

    今天的風甚為喧鬧GIF表情生成

    流量開銷傷不起,模板圖片都是自己主機做圖床,舍不得提供過多圖片序列,因此,生成GIF的素材掉幀有些嚴重,見諒見諒,感受精髓,感受精髓。

    然后,生成GIF效果就是下面圖這樣:

    生成的喧鬧風gif效果圖

    如果嫌棄提供的模板太簡陋,可以自己上傳序列圖片DIY,例如使用上一篇文章中用到的的圖片序列素材:

    圖片序列上傳示意

    然后填寫臺詞:“給你一個飛吻”“么啊”,然后生成,就有下面質量不錯的GIF效果了(點擊播放200多K):

    我的飛吻

    純文字表情包生成器在線_在線生成表情包源碼_身份證號碼生成在線器

    重點是這個工具純前端生成的

    表情生成器工具很多,簡單的如靜態圖生成器,靜態圖上面臺詞可以修改;復雜點的動態GIF表情生成器,例如可能有人已經用過的“表情鍋”:

    表情DIY

    目前已經有好幾十個模板了,訪問量應該可以,因為我看到guang gao都出來了。

    但是小工具是后端圖片服務主導實現的,于是就有這樣問題:

    服務器開銷不小,壓力比較大;只能用對方提供的模板生成gif表情,不能使用自己的自定義素材,例如無法實現一個放飛自我的“飛吻”GIF表情;

    實際上,純前端就能搞定GIF生成,資源開銷更小,速度更快,更加靈活!

    二、如何JS純前端web生成GIF圖片呢?

    本GIF表情生成器核心技術源自這個項目:

    借助Web Workers, File API和類型數組在瀏覽器端進行GIF encode,從而生成GIF圖片。

    語法相當簡單,下面代碼是官方示例,我簡單翻譯下:

    var gif = new GIF({
      workers: 2,
      quality: 10
    });
    // 添加圖片元素
    gif.addFrame(imageElement);
    // 或者是canvas元素
    gif.addFrame(canvasElement, {delay: 200});
    // 或者從canvas的上下文復制像素信息
    gif.addFrame(ctx, {copy: true});
    gif.on('finished', function(blob) {
      // 這里的blob就是gif圖片blod格式信息
      window.open(URL.createObjectURL(blob));
    });
    gif.render();

    三、GIF生成器中的字幕臺詞是怎么加上去的呢?

    GIF生成器中的字幕臺詞是怎么加上去的呢?答案是使用canvas繪制的。

    canvas先使用()方法繪制底圖,然后把輸入框中的對話信息繪制在底圖上就好了。

    拿其中某一幀舉例示意:

    var gif = new GIF({
        width: width,
        height: height
    });
    // 畫布元素
    var canvas = document.createElement('canvas');
    var context = canvas.getContext('2d');
    // 繪制圖片
    context.drawImage(img, 0, 0);
    // 繪制文字
    context.fillText(message, width / 2, height - 32);
    // 作為幀插入GIF
    gif.addFrame(context, {
        delay: delay,
       copy: true
    });

    四、本地上傳GIF幀圖片如何處理的?

    本地上傳素材圖片和模板提供的類似,只是素材圖片預覽時候的src地址是base64地址。

    無論是選擇上傳還是拖拽上傳,都可以get到圖片這個文件對象,假設變量名是file,則可以借助將圖片文件轉換成可預覽模式:

    var reader = new FileReader();
    reader.onload = function(e) {
        // e.target.result就是圖片的base64地址信息
        // 讓img的src屬性值為e.target.result圖片即可呈現
    }
    reader.readAsDataURL(file);

    接下來的代碼邏輯就和模板圖片的處理一模一樣了。

    五、結束語本工具UI組件由LuLu UI提供支持,LuLu UI —— 你問我有什么不同?只是更自由,更純粹,和用戶走得更近。歡迎反饋使用中遇到的問題,文章評論,或者微博私信都可以。本工具URL地址是:/sp/gif,特別的(special)gif,特別的愛給特別的你~我擦,我居然不自覺唱起來了~分享看到的一個關于幀和時間挺有意思的推文(日文翻譯版):

    幀和時間

    按照上圖的說法,每幀時間為0.02秒,也就是20毫秒每幀,接近顯示器的繪制頻率,哈哈哈。對于GIF標簽圖而言,不需要這么高的幀率,每幀84毫秒用戶體驗也是可以接受的,頻率過高的GIF體積會很大,有的甚至達4~5M,對于web環境,是不太適合的。

    以上為本文全部內容,感謝閱讀!

    本文為原創文章,會經常更新知識點以及修正一些錯誤,因此轉載請保留原出處,方便溯源,避免陳舊錯誤知識的誤導,同時有更好的閱讀體驗。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有