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