改變ByteArray的元素
不好意思@@ 程式碼有點長 所以附上檔案
http://www.badongo.com/file/14689918
我想要把加入的圖轉換成discrete cosine transform 在顯示出來
我ㄧ開始在元件庫加入了一張256x256的圖放在secondBitmap
上,然後想要改圖中的每點像素值。所以先寫了一個迴圈 把圖分成8x8的小block
var rect:Rectangle = new Rectangle(j*8,i*8,8,8);
var bytes:ByteArray = secondBitmapData.getPixels(rect);
因為bytes的length為256=8x8x4(Alpha RGB ) 所以我想應該是bytes[0]~bytes[3]為一點
像素的資料 因此我每隔4個資料取一個數值(每點的R值)
for (var m:int=0;m<64;m++ ){
a0.push(bytes[4*m+1]-128); 同樣做 a0~a7
..}
再放到1個8x8的2維陣列b
b[0]=a0;
b[1]=a1; 做b[0]~b[7]
.....
再將b內的各點值做discrete cosine transform 後 得到的值放在b[q][r]
q,r是對應的index
再取代bytes裡的值 就是把原本的RGB全換成b[q][r]
bytes.splice(4*m+1,3,b[q][r],b[q][r],b[q][r]);
但是error出現說bytes.splice未定義 請問得怎麼解決這問題呢?
最後我用
redBitmapData.setPixels(rect,bytes);
這行是想要指定將bytes的數值指定到redBitmapData上
但是執行到這邊都會出現error
謝謝耐心看到這邊的人 請幫小女子解惑 我已經困擾很久了 謝謝~^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.163.154
※ 編輯: sokero 來自: 140.116.163.154 (04/29 19:51)
推
04/29 21:19, , 1F
04/29 21:19, 1F
→
04/29 21:19, , 2F
04/29 21:19, 2F
→
04/29 21:19, , 3F
04/29 21:19, 3F
推
05/03 11:30, , 4F
05/03 11:30, 4F
推
05/03 12:07, , 5F
05/03 12:07, 5F