請問兩的像素的亮度值互傳與亮度平均 |
尚未結案
|
bettyps
一般會員 發表:3 回覆:4 積分:1 註冊:2004-04-01 發送簡訊給我 |
我想要將本來的圖片偶數像素的值傳到另一個圖片
所以我這樣寫
ShowMessage( int Width, Height; Graphics::TBitmap *TheBitmap, *TempBitmap; Byte *ptr, *ptrt; TempBitmap= new Graphics::TBitmap(); TheBitmap=Image1->Picture->Bitmap; TheBitmap->PixelFormat=pf8bit; TempBitmap->Assign(TheBitmap); for (int y=0; ydebug時沒有錯誤但執行此按鈕時ptrt[x]=ptr[x]總是出現警告的視窗 Project Project2.exe raised exception class EAccessViolation with message 'Access violation at address 00402A44 in module 'Project2.exe'. Read of address '0107F000'. 請問是發生怎樣的錯誤呢? 卡在這裡好久...XD...請解惑..感激..Q__Q PS:順帶問一下如果是圖形中兩個pixel亮度的平均大家又怎麼寫呢? 發表人 - bettyps 於 2004/04/16 23:53:16 發表人 - bettyps 於 2004/04/16 23:55:27 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
bettyps您好:
Byte *ptr=NULL, *ptrt=NULL; Graphics::TBitmap *TheBitmap= new Graphics::TBitmap(); Graphics::TBitmap *TempBitmap= new Graphics::TBitmap(); TheBitmap->Assign(Image1->Picture->Bitmap); TheBitmap->PixelFormat=pf8bit; TempBitmap->PixelFormat=pf8bit; TempBitmap->Width = TheBitmap->Width; TempBitmap->Height = TheBitmap->Height; for (int y=0; y不知這樣是不是您要的 還是您要的是類似下面連結說的 < href="http://delphi.ktop.com.tw/topic.php?TOPIC_ID=46606">http://delphi.ktop.com.tw/topic.php?TOPIC_ID=46606 引言:順帶問一下如果是圖形中兩個pixel亮度的平均大家又怎麼寫呢?請將程式碼PO上來讓有經驗的前輩們幫您看看< > 順心< > ~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 - taishyang 於 2004/04/17 00:27:24 |
bettyps
一般會員 發表:3 回覆:4 積分:1 註冊:2004-04-01 發送簡訊給我 |
謝謝你~~
我試過你的程式碼似乎也跟我本來的道理相通
但是仍然執行是同樣的錯誤...(怪)
又參考了你給我的另一個以前的網址
我用Canvas方法改寫如下
ShowMessage( int Width, Height; Graphics::TBitmap *TheBitmap, *TempBitmap; Byte *ptr1, *ptr2; TempBitmap= new Graphics::TBitmap(); TheBitmap=Image1->Picture->Bitmap; TempBitmap->Assign(TheBitmap); Width = TheBitmap->Width; Height = TheBitmap->Height; for (int y=0; y用Canvas寫法我個人比較能懂 但是這樣寫出來不知道為何亮度平均部分例如138跟137會得52 後來發現似乎是平均有小數就會出線這樣的問題 請問BCB中有四捨五入的函數嗎? 若我我照上面這樣寫結果卻也一樣又為什麼呢?...>< |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
bettyps您好:
引言: 我試過你的程式碼似乎也跟我本來的道理相通 但是仍然執行是同樣的錯誤...(怪)的確是蠻怪的,因為我確定可以正常執行才po上來的, winxp BCB6.0 不過只是把偶數點的像素資料顯示在Image2上 我給您的連結則是會縮小影像大小 而下面連結則是另外的做法 http://delphi.ktop.com.tw/topic.php?topic_id=32831 引言: 用Canvas寫法我個人比較能懂 但是這樣寫出來不知道為何亮度平均部分例如138跟137會得52 小弟建議您可以用Debug的方式確認問題點在哪邊,再針對問題點解決 因為您沒附圖片與完整的程式碼,小弟能力不足很難幫的上忙< > 後來發現似乎是平均有小數就會出線這樣的問題 請問>四捨五入這問題站上有問過了請您搜尋一下囉>< > 若我我照上面這樣寫結果卻也一樣又為什麼呢?...><>> 小弟家裡電腦沒灌BCB,待小弟下禮拜學校後再幫您試試看 或是可以等有經驗的前輩幫您看看 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~> 發表人 - |
bettyps
一般會員 發表:3 回覆:4 積分:1 註冊:2004-04-01 發送簡訊給我 |
引言: bettyps您好:引言: 我試過你的程式碼似乎也跟我本來的道理相通 但是仍然執行是同樣的錯誤...(怪)的確是蠻怪的,因為我確定可以正常執行才po上來的, winxp BCB6.0 不過只是把偶數點的像素資料顯示在Image2上 我給您的連結則是會縮小影像大小 而下面連結則是另外的做法 http://delphi.ktop.com.tw/topic.php?topic_id=32831 這似乎跟我想要的又不太一樣@_@引言: 用Canvas寫法我個人比較能懂 但是這樣寫出來不知道為何亮度平均部分例如138跟137會得52 小弟建議您可以用Debug的方式確認問題點在哪邊,再針對問題點解決 因為您沒附圖片與完整的程式碼,小弟能力不足很難幫的上忙< > 後來發現似乎是平均有小數就會出線這樣的問題 請問>四捨五入這問題站上有問過了請您搜尋一下囉>< > 若我我照上面這樣寫結果卻也一樣又為什麼呢?...><>> 小弟家裡電腦沒灌BCB,待小弟下禮拜學校後再幫您試試看 或是可以等有經驗的前輩幫您看看 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~> 發表人 - >>< face="Verdana, Arial, Helvetica"> 感謝 小熬夜又改了改程式...很神奇地又可以跑了 (真不知道之前又是錯在哪) 現在寫法如下ShowMessage( Graphics::TBitmap* BMP =new Graphics::TBitmap(); BMP->Assign(Image1->Picture->Bitmap); BMP->PixelFormat=pf8bit; Byte* ptr, *ptrup, *ptrdown = NULL; for (int y=0; y第一個回圈用Photoshop驗證沒錯...但第二跟第三個迴圈卻又不太對了 但圖片可以跑...每多跑一個回圈用difference驗證果然又不太一樣 結果也類似我要的...但總覺得還是怪怪的...因為PS用滴管演正的結果並不太相同 不過這段程式先暫時研究到這裡 感謝盡心的taishyang版主..<(_ _)> 若有時間再請幫我看看~~ |
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
引言:請你再檢查看看 發表人 - jerrykuo 於 2004/04/19 09:41:35int Width, Height; Graphics::TBitmap *TheBitmap, *TempBitmap; Byte *ptr, *ptrt; TempBitmap= new Graphics::TBitmap(); TheBitmap=Image1->Picture->Bitmap; TheBitmap->PixelFormat=pf8bit; 不知道你為什麼要設定pf8bit,是為了轉成灰階嗎,如果是,轉灰階不是這樣 做的,RGB轉灰階有一定的公式。 TempBitmap->Assign(TheBitmap); for (int y=0; ydebug時沒有錯誤但執行此按鈕時ptrt[x]=ptr[x]總是出現警告的視窗 Project Project2.exe raised exception class EAccessViolation with message 'Access violation at address 00402A44 in module 'Project2.exe'. Read of address '0107F000'. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |