国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

04-Buffer的使用

這篇具有很好參考價(jià)值的文章主要介紹了04-Buffer的使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Buffer和二進(jìn)制

對(duì)于前端開發(fā)來說,通常很少會(huì)和二進(jìn)制打交道,但是對(duì)于服務(wù)器端為了做很多的功能,我們必須直接去操作其二進(jìn)制的數(shù)據(jù);所以Node為了可以方便開發(fā)者完成更多功能,提供給了我們一個(gè)類Buffer,并且它是全局的。

1.Buffer中存儲(chǔ)的是二進(jìn)制數(shù)據(jù),那么到底是如何存儲(chǔ)呢?

  • 我們可以將Buffer看成是一個(gè)存儲(chǔ)二進(jìn)制的數(shù)組
  • 這個(gè)數(shù)組中的每一項(xiàng),可以保存8位二進(jìn)制: 00000000

2.為什么是8位呢

  • 在計(jì)算機(jī)中,很少的情況我們會(huì)直接操作一位二進(jìn)制,因?yàn)橐晃欢M(jìn)制存儲(chǔ)的數(shù)據(jù)是非常有限的;
  • 所以通常會(huì)將8位合在一起作為一個(gè)單元,這個(gè)單元稱之為一個(gè)字節(jié)(byte);
  • 也就是說 1byte = 8bit,1kb=1024byte,1M=1024kb;
  • 比如RGB的值分別都是255,所以本質(zhì)上在計(jì)算機(jī)中都是用一個(gè)字節(jié)存儲(chǔ)的;

Buffer和字符串

  • Buffer相當(dāng)于是一個(gè)字節(jié)的數(shù)組,數(shù)組中的每一項(xiàng)對(duì)于一個(gè)字節(jié)的大?。?/li>
  • 如果我們希望將一個(gè)字符串放入到Buffer中,是怎么樣的過程呢
const message = 'Hello world'

// 1.創(chuàng)建方式一
// const buffer = new Buffer(message)
// console.log(buffer)

// 2.創(chuàng)建方式二
const buffer = Buffer.from(message)
console.log(buffer);

將字符串轉(zhuǎn)成對(duì)應(yīng)的ascall碼的16進(jìn)制,Buffer中存儲(chǔ)的是其對(duì)應(yīng)的16進(jìn)制。
中文如何解析

  • 默認(rèn)編碼:utf-8
  • 可以改成utf16
const message = '你好啊'

// const buffer = Buffer.from(message,'utf8')
const buffer = Buffer.from(message, 'utf16le')
console.log(buffer)
console.log(buffer.toString('utf16le'))

編碼解碼需要保持同一種格式

解碼可以使用toString()

Buffer的其它創(chuàng)建方式

1.使用 Buffer.alloc() 方法創(chuàng)建指定大小的 Buffer,該方法會(huì)將 Buffer 中的所有字節(jié)都設(shè)置為 0。例如:

const buffer = Buffer.alloc(8)
console.log(buffer)
buffer[0] = 0x88
console.log(buffer)

2.使用 Buffer.allocUnsafe() 方法創(chuàng)建指定大小的 Buffer,該方法不會(huì)清空 Buffer 中的數(shù)據(jù),因此創(chuàng)建的 Buffer 可能包含敏感信息。如果需要清空 Buffer 中的數(shù)據(jù),可以使用 Buffer.fill() 方法。例如:

const buf = Buffer.allocUnsafe(10);
buf.fill(0);
console.log(buf)

這個(gè)例子中,創(chuàng)建了一個(gè)大小為 10 字節(jié)的未初始化的 Buffer 對(duì)象,然后使用 fill() 方法將所有字節(jié)都設(shè)置為 0。

Buffer和文件讀取

sharp:圖片的處理,包括裁剪。 https://blog.lcddjm.com/sharp-documents-cn/

npm i sharp文章來源地址http://www.zghlxwxcb.cn/news/detail-496450.html

const fs = require('fs')
const sharp = require('sharp')

// 讀文本文件
// fs.readFile('./foo.txt', (err, data) => {
//   console.log(data)
//   console.log(data.toString())
// })

// 讀圖片
// fs.readFile('./bar.png', (err, data) => {
//   console.log(data)
//   // 復(fù)制文件
//   fs.writeFile('./copybar.png', data, (err, data) => {
//     console.log(err)
//   })
// })

// sharp的使用
sharp('./bar.png')
  .resize(300, 300)
  .toBuffer()
  .then(data => {
    fs.writeFile('./bax.png', data, err => console.log(err))
  })

到了這里,關(guān)于04-Buffer的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Vue前端渲染blob二進(jìn)制對(duì)象圖片的方法

    Vue前端渲染blob二進(jìn)制對(duì)象圖片的方法

    近期做開發(fā),聯(lián)調(diào)接口。接口返回的是一張圖片,是對(duì)二進(jìn)制圖片處理并渲染,特此記錄一下。 本文章是轉(zhuǎn)載文章,原文章:Vue前端處理blob二進(jìn)制對(duì)象圖片的方法 接口response是下圖 顯然,獲取到的是一堆亂碼,前端需要將其解析出來,百度之后發(fā)現(xiàn)解析二進(jìn)制文檔流的寫法

    2024年02月15日
    瀏覽(37)
  • 前端:JS:將圖片轉(zhuǎn)為二進(jìn)制與其他文本傳入后端

    在前端,可以將圖片轉(zhuǎn)換為二進(jìn)制數(shù)據(jù),并將其與其他文本字符串一起發(fā)送到后端。一種常見的方法是將所有數(shù)據(jù)組合為一個(gè) FormData 對(duì)象,然后通過 AJAX 或 Fetch API 將其發(fā)送給后端。以下是一個(gè)示例: 解釋 : 當(dāng)文件輸入框內(nèi)容發(fā)生變化時(shí),會(huì)觸發(fā) change 事件。然后,它會(huì)讀

    2024年04月26日
    瀏覽(33)
  • 《Kubernetes部署篇:Ubuntu20.04基于二進(jìn)制安裝安裝kubeadm、kubelet和kubectl》

    《Kubernetes部署篇:Ubuntu20.04基于二進(jìn)制安裝安裝kubeadm、kubelet和kubectl》

    由于客戶網(wǎng)絡(luò)處于專網(wǎng)環(huán)境下, 使用kubeadm工具安裝K8S集群 ,由于無法連通互聯(lián)網(wǎng),所有無法使用apt工具安裝kubeadm、kubelet、kubectl,當(dāng)然你也可以使用apt-get工具在一臺(tái)能夠連通互聯(lián)網(wǎng)環(huán)境的服務(wù)器上下載kubeadm、kubelet、kubectl軟件包,然后拷貝到專網(wǎng)主機(jī)上,通過dpkg工具安裝

    2024年02月10日
    瀏覽(24)
  • 解決前端二進(jìn)制流下載的文件(例如:excel)打不開的問題

    解決前端二進(jìn)制流下載的文件(例如:excel)打不開的問題

    1. 現(xiàn)在后端請(qǐng)求數(shù)據(jù)后,返回了一個(gè)二進(jìn)制的數(shù)據(jù),我們要把它下載下來。 這是響應(yīng)的數(shù)據(jù): 2. 這是調(diào)用接口的地方: ?使用了file-saver插件:github地址 3. 這時(shí)如果直接下載的話,打開文件就會(huì)失敗 4. 這時(shí)就必須要在調(diào)接口的時(shí)候做一下處理 responseType: \\\'arraybuffer\\\', 這個(gè)必須

    2024年02月04日
    瀏覽(341)
  • vue 后端返回二進(jìn)制流-前端通過blob對(duì)象下載文件-圖片

    前言 在實(shí)際開發(fā)中我們經(jīng)常會(huì)遇見下載文件的場(chǎng)景,比如下載合同,下載文件 下載文件有2種方式,一種是后端返回二進(jìn)制流,前端通過blob對(duì)象接受根據(jù)不同類型下載 還有一種把地址直接在瀏覽器新窗口打開瀏覽器打開pdf可以預(yù)覽和下載,其他文件直接下載 但不管是那種方

    2024年02月05日
    瀏覽(26)
  • 【JavaScript】后端返回的二進(jìn)制流音頻數(shù)據(jù)或本地音頻資源,前端如何播放?

    如果我們要使用本地的音頻資源,在 vue3 中那么我們需要對(duì)資源的地址做一下處理 后端返回二進(jìn)制流音頻數(shù)據(jù),怎么讓其可播放 前端播放二進(jìn)制語音流

    2024年02月03日
    瀏覽(32)
  • 【前端】WebSocket接收二進(jìn)制數(shù)據(jù)轉(zhuǎn)JSON并解決中文亂碼問題(ArrayBuffer轉(zhuǎn)json)

    【前端】WebSocket接收二進(jìn)制數(shù)據(jù)轉(zhuǎn)JSON并解決中文亂碼問題(ArrayBuffer轉(zhuǎn)json)

    WebSocket與mqtt服務(wù)器通信,接收二進(jìn)制數(shù)據(jù)并將其轉(zhuǎn)為Json使用。一般方式都會(huì)出現(xiàn)中文亂碼問題。

    2024年01月22日
    瀏覽(21)
  • fpga開發(fā):二進(jìn)制轉(zhuǎn)BCD碼的電路設(shè)計(jì)

    fpga開發(fā):二進(jìn)制轉(zhuǎn)BCD碼的電路設(shè)計(jì)

    魚弦:CSDN內(nèi)容合伙人、CSDN新星導(dǎo)師、全棧領(lǐng)域創(chuàng)作新星創(chuàng)作者 、51CTO(Top紅人+專家博主) 、github開源愛好者(go-zero源碼二次開發(fā)、游戲后端架構(gòu) https://github.com/Peakchen) 題目:二進(jìn)制轉(zhuǎn)BCD碼的電路設(shè)計(jì) 一、設(shè)計(jì)要求 利用上海安路科技的EG4X20BG256板卡上面的資源(4個(gè)按鍵、4個(gè)

    2024年02月03日
    瀏覽(34)
  • 如何使用VSCode來查看二進(jìn)制文件

    如何使用VSCode來查看二進(jìn)制文件

    2023年11月6日,周一下午 目錄 方法1:安裝插件Binary Viewer 然后用vscode打開一個(gè)二進(jìn)制文件,并點(diǎn)擊右上角的\\\"HEX\\\" 方法2:安裝插件Binary 然后用vscode打開一個(gè)二進(jìn)制文件,并點(diǎn)擊右上角的\\\"B\\\" 特點(diǎn):功能比較完善 然后用vscode打開一個(gè)二進(jìn)制文件,并點(diǎn)擊右上角的\\\"HEX\\\" 特點(diǎn):功能簡

    2024年02月03日
    瀏覽(41)
  • 使用 WebSocket 發(fā)送二進(jìn)制數(shù)據(jù):最佳實(shí)踐

    使用 WebSocket 發(fā)送二進(jìn)制數(shù)據(jù):最佳實(shí)踐

    WebSocket ?技術(shù)提供了一種在客戶端和服務(wù)器間建立持久連接的方法,使得雙方可以在打開連接后隨時(shí)發(fā)送數(shù)據(jù),而不必?fù)?dān)心建立復(fù)雜的持久連接機(jī)制。同時(shí),使用二進(jìn)制數(shù)據(jù),如ArrayBuffer,可以更有效率地傳送圖像、聲音等信息。本指南旨在深入探討如何使用WebSocket傳輸二進(jìn)

    2024年04月09日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包