線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1239
推到 Plurk!
推到 Facebook!

請教圖形的色差與容錯問題

尚未結案
China Join
中階會員


發表:81
回覆:242
積分:89
註冊:2003-03-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-23 16:15:24 IP:218.170.xxx.xxx 未訂閱
小弟想製作一個以圖形為形狀的 FORM 外觀,但是總是會有白邊,之前有找到 一個有容錯功能的演算法,但是這個容錯度參數似乎沒有什麼用,研究很久了 還是看不出那邊有問題,大大們如果對圖形邊緣搜尋有研究的話可否幫小弟看看呢? 程式網址如下: http://forum.vclxx.org/topic.php?TOPIC_ID=12875&FORUM_ID=12&CAT_ID=3&Topic_Title=ActiveSkin,§ïÅÜForm¥~«¬, º}«G¤¶­±...§¹¾ã¸ѵª~&Forum_Title=C++ Ps.程式完全沒有問題只是,容錯度的參數沒有作用(試不出來) 另外小弟也把修改後的程式貼到會員問題檔案區,麻煩大家了! 發表人 - China Join 於 2003/04/23 22:12:22
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-30 16:23:08 IP:61.231.xxx.xxx 未訂閱
原文真的是很好的分享,我也試作了,沒有問題... 我想,唯一有問題的是它提供的簡易範例:    HBITMAP bmp_a =Form1->Image1->Picture->Bitmap->Handle ; COLORREF colo = clWhite; COLORREF colo_r= clWhite; HRGN rgn= GetPictureRegion(bmp_a, colo,colo_r); SetWindowRgn(this->Handle, rgn, true);    表示透明色是白色,而容許誤差值也是白色! 白色已是由 RGB 都是 255 所組成,已是各色之最大值,由其演算法中,有用到 cTolerance 參數的只有:
          BYTE lr = GetRValue(cTransparentColor);
          BYTE lg = GetGValue(cTransparentColor);
          BYTE lb = GetBValue(cTransparentColor);
          BYTE hr = (BYTE)min(0xff, lr   GetRValue(cTolerance));
          BYTE hg = (BYTE)min(0xff, lg   GetGValue(cTolerance));
          BYTE hb = (BYTE)min(0xff, lb   GetBValue(cTolerance));
而輸入的 cTransparentColor 是白色, lr,lg,lb 已都是 255 不論 cTolerance 為何值 hr,hg,hb 都會是 255。 建議您將透明色改成其他的顏色,例如: 0x00FF00FF 這個粉紅色,在許多免費 shell 圖庫中都是以它為透明色,再將 cTolerance 設為 0,我已試過,沒有問題。 也因為它的演算法中有最大 255 的限制了,最好透明色不要用白色! 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://big5.to/吃軟也吃硬 http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
China Join
中階會員


發表:81
回覆:242
積分:89
註冊:2003-03-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-01 00:01:25 IP:218.170.xxx.xxx 未訂閱
經 dllee 版主的指導    小弟終於知道問題出在那邊了,謝謝囉 
系統時間:2024-04-19 21:06:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!