W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
當(dāng)需要對(duì)目標(biāo)圖片中的部分區(qū)域進(jìn)行處理時(shí),可以使用位圖操作功能。此功能常用于圖片美化等操作。
如下圖所示,一張圖片中,將指定的矩形區(qū)域像素?cái)?shù)據(jù)讀取出來(lái),進(jìn)行修改后,再寫(xiě)回原圖片對(duì)應(yīng)區(qū)域。
位圖操作相關(guān)API的詳細(xì)介紹請(qǐng)參見(jiàn)API參考。
- // 獲取圖像像素的總字節(jié)數(shù)
- let pixelBytesNumber = pixelMap.getPixelBytesNumber();
- // 獲取圖像像素每行字節(jié)數(shù)
- let rowCount = pixelMap.getBytesNumberPerRow();
- // 獲取當(dāng)前圖像像素密度。像素密度是指每英寸圖片所擁有的像素?cái)?shù)量。像素密度越大,圖片越精細(xì)。
- let getDensity = pixelMap.getDensity();
- // 場(chǎng)景一:將讀取的整張圖像像素?cái)?shù)據(jù)結(jié)果寫(xiě)入ArrayBuffer中
- const readBuffer = new ArrayBuffer(pixelBytesNumber);
- pixelMap.readPixelsToBuffer(readBuffer).then(() => {
- console.info('Succeeded in reading image pixel data.');
- }).catch(error => {
- console.error('Failed to read image pixel data. And the error is: ' + error);
- })
- // 場(chǎng)景二:讀取指定區(qū)域內(nèi)的圖片數(shù)據(jù),結(jié)果寫(xiě)入area.pixels中
- const area = {
- pixels: new ArrayBuffer(8),
- offset: 0,
- stride: 8,
- region: { size: { height: 1, width: 2 }, x: 0, y: 0 }
- }
- pixelMap.readPixels(area).then(() => {
- console.info('Succeeded in reading the image data in the area.');
- }).catch(error => {
- console.error('Failed to read the image data in the area. And the error is: ' + error);
- })
- // 對(duì)于讀取的圖片數(shù)據(jù),可以獨(dú)立使用(創(chuàng)建新的pixelMap),也可以對(duì)area.pixels進(jìn)行所需修改
- // 將圖片數(shù)據(jù)area.pixels寫(xiě)入指定區(qū)域內(nèi)
- pixelMap.writePixels(area).then(() => {
- console.info('Succeeded to write pixelMap into the specified area.');
- })
- // 將圖片數(shù)據(jù)結(jié)果寫(xiě)入pixelMap中
- const writeColor = new ArrayBuffer(96);
- pixelMap.writeBufferToPixels(writeColor, () => {});
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: