node使用buffer生成圖片或以base64顯示圖片


轉自:https://blog.csdn.net/u010081689/article/details/51088068 node使用buffer生成圖片

轉自:https://blog.csdn.net/albg_boy/article/details/79287624 img顯示base64圖片

node使用buffer生成圖片

buffer是node里的一個模塊,這個模塊的出現是因為js沒有閱讀和操作二進制數據流而出現的

1、buffer是什么及作用?
Buffer顧名思義叫緩沖區,用於存儲速度不同步的設備或優先級不同的設備之間傳輸數據;通過buffer可以減少進程間通信需要等待的時間,當存儲速度快的設備與存儲速度慢的設備進行通信時,存儲慢的數據先把數據存放到buffer,達到一定程度存儲快的設備再讀取buffer的數據,在此期間存儲快的設備CPU可以干其他的事情。buffer一般是用在寫入磁盤的,例如:某個進程要求多個字段被讀入,當所有要求的字段被讀入之前已經讀入的字段會先放到buffer中。

2、node之buffer介紹
具體關於buffer的介紹,看《buffer詳解》

3、使用buffer來生產圖片示例
代碼:

var fs = require('fs');

fs.readFile('./public/images/avatar.jpg', function(err, originBuffer) {
    console.log(Buffer.isBuffer(originBuffer));

    // 生成圖片2(把buffer寫入到圖片文件)
    fs.writeFile('./public/images/avatar2.jpg', originBuffer, function(err) {
        if(err) {console.log(err)}
    });

    var base64Img = originBuffer.toString('base64');  // base64圖片編碼字符串

    console.log(base64Img);

    var decodeImg = new Buffer(base64Img, 'base64');  // new Buffer(string, encoding)

    console.log(Buffer.compare(originBuffer, decodeImg));  // 0 表示一樣


    // 生成圖片3(把base64位圖片編碼寫入到圖片文件)
    fs.writeFile('./public/images/avatar3.jpg', decodeImg, function(err) {
        if(err) {console.log(err)}
    });
});

img顯示base64圖片

<img alt="Red Star" src="data:image/png;base64,[填入獲取的base64字符]">


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM