[問題] 影像區塊存取

看板C_Sharp作者 (冰淇淋乾杯)時間15年前 (2010/04/10 21:50), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
想請教各位一個關於圖片區塊存取的問題 目前我有一張圖片,因為整張圖直接做速度會太慢(我已經使用指標) 圖片是400*300的bmp,我將他切成四個部份做存取 目前有我做了兩種處理,產生的結果都不一樣,所以我不清楚哪一個才是正確的 所以想請教一下版友 以下是第一種寫法: unsafe { byte *p = (byte *)bmData.Scan0.ToPointer(); for (int i = 0; i < 30; i++) { for (int j = 0; j < 400; j++) { str += p[0].ToString(); } p += 3; } ...... ...... ...... (同樣的Code重複三次,總共四段) } 第二種寫法: unsafe { byte*[] p = new byte*[4]; p[0] = (byte *)bmData.Scan0.ToPointer(); for (int i = 1; i < 4; i++) { p[i] = p[i -1] + 90000 } for (int i = 0; i < 30; i++) { for (int j = 0; j < 400; j++) { str0 += (*p[0]).ToString(); } } for (int i = 0; i < 30; i++) { for (int j = 0; j < 400; j++) { str1 += (*p[1]).ToString(); } } for (int i = 0; i < 30; i++) { for (int j = 0; j < 400; j++) { str2 += (*p[2]).ToString(); } } for (int i = 0; i < 30; i++) { for (int j = 0; j < 400; j++) { str3 += (*p[3]).ToString(); } } } 第二種作法是由第一種改良而來 因為考慮到在Duo Core的主機上可以減少code dependence 不過兩種結果跑出來卻不太一樣,讓我覺得應該是某一個方法錯了 但是不知道是第一種還是第二種 還請各位幫忙指正一下,謝謝 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.0.142

04/10 21:57, , 1F
str += p[0].ToString(); 這樣STR不是一直在讀同樣的值嗎
04/10 21:57, 1F

04/10 22:15, , 2F
把你要做的東西和演算法講清楚一點,請學會如何問問題...
04/10 22:15, 2F
文章代碼(AID): #1Bm88k_P (C_Sharp)