如何將圖片轉hex 檔 |
|
bt815
一般會員 發表:5 回覆:4 積分:1 註冊:2006-10-11 發送簡訊給我 |
|
justdo
高階會員 發表:2 回覆:359 積分:222 註冊:2004-08-17 發送簡訊給我 |
|
bt815
一般會員 發表:5 回覆:4 積分:1 註冊:2006-10-11 發送簡訊給我 |
不好意思唷~這裏附上我的程式
=================================================== 以下是開啟.bmp檔的程式 void __fastcall TForm1::LoadClick(TObject *Sender) { if(OpenPictureDialog1->Execute()) { bmp = OpenPictureDialog1->FileName; Image1->Picture->LoadFromFile(bmp); S1 = bmp.LowerCase(); width1 = Image1->Picture->Width; height1 = Image1->Picture->Height; } } ======================================================================= 以下為轉換及存檔成.hex檔的程式碼,轉換的部份先只取RGB中的R值, 且在saveDialog1->filter 設定存檔為.hex void __fastcall TForm1::mode_RClick(TObject *Sender) { COLORREF color; int R_byte; AnsiString R_tmp , memo_Line; for(int i = 0; i< height1; i ) { for(int j =0 ; j< width1; j ) { color = Image1->Canvas->Pixels[j][i]; R_byte = (GetBValue(color)); R_tmp = (IntToHex)(R_byte,2); memo_Line = memo_Line R_tmp; } } Memo1->Lines->Append(memo_Line); if(SaveDialog1->Execute()) { Memo1->Lines->SaveToFile(SaveDialog1->FileName); } } 但是存檔後的hex file不是我所要的, 麻煩請各位幫我解答我的疑問,謝謝 |
justdo
高階會員 發表:2 回覆:359 積分:222 註冊:2004-08-17 發送簡訊給我 |
|
bt815
一般會員 發表:5 回覆:4 積分:1 註冊:2006-10-11 發送簡訊給我 |
===================引 用 文 章=================== 跑起來並沒有問題呀,唯二的問題是你呼叫GetBValue()取得的資料是blue channel的資料,還有程式跑太慢了,有兩個改善的方法,一是取得pixel的方法改用ScanLine、二是儲存過程中產生的資料時,存個一行就把資料寫到檔案去,因為影像大的時候,系統要不斷的擴充該字串變數的大小,這是很耗時的 不好意思唷~我知道程式跑得過,然後bvalue那裡是筆誤 ^^" 不好意思 我的問題是 我希望我輸出儲存的檔案格式應該要類似這個網頁所說得這樣 http://www.keil.com/support/docs/1584.htm 但是存檔格式卻不如我預期的, 大大所指教的效能問題,很謝謝您給我意見, 這也是我所遇到的問題 我會來試試看,謝謝您 也希望知道hex file該怎麼寫的各位先進,可以給我指教 |
justdo
高階會員 發表:2 回覆:359 積分:222 註冊:2004-08-17 發送簡訊給我 |
|
bt815
一般會員 發表:5 回覆:4 積分:1 註冊:2006-10-11 發送簡訊給我 |
===================引 用 文 章=================== 呃.. 原來hex是intel訂的一種檔案格式... 這在問題裡要先說明,不是每個人都知道這件事 另外,你根本沒有照他的說明來產生資料,結果當然不一樣 像是 :llaaaatt[dd...]cc 應該先輸出冒號,再輸出該片段的長度(只有兩bytes,最長只能255個?),接著....,然後放真正的data、最後算chucksum 根本都沒做嘛... 怎麼期望會獲得一樣的結果呢? 嗯嗯,不好意思 造成大家誤解, 我只是想請問一下C Builder有沒有指令可以做到? 還是真的要自己去寫資料? |
justdo
高階會員 發表:2 回覆:359 積分:222 註冊:2004-08-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |