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

請問將圖形轉換成黑白顏色的問題

尚未結案
plays2tw
一般會員


發表:5
回覆:2
積分:1
註冊:2004-05-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-13 09:29:09 IP:192.192.xxx.xxx 未訂閱
爲什麼將圖轉換成0 與 255,但是show 出來的圖卻不是黑白的..而是近似於咖啡色 另外我去抓取存入的值(存入的應該是0與255),發現值會跑掉,RGB不再是0與255。 我想出錯的原因在此..但是這該如何解決呢?一直找不到方法 麻煩熟悉的人,可以幫我解答一下..謝謝。 以下兩個程式碼出現的圖都是咖啡色    void __fastcall TForm1::Button1Click(TObject *Sender) {   int SrcWidth,SrcHeight;   int i,j,d_R;      SrcWidth=SrcImage->Picture->Bitmap->Width;   SrcHeight=SrcImage->Picture->Bitmap->Height;      for( i=0;iPicture->Bitmap->Canvas->Pixels[i][j]); if (d_R >= 128) { temp[i][j] = 255; TempImage->Canvas->Pixels[i][j]=(TColor)RGB(255,255,255) ; } else { temp[i][j] = 0; TempImage->Canvas->Pixels[i][j]=(TColor)RGB(0,0,0) ; } } } ShowMessage(" 轉成黑白完畢!"); /**********************/ for( i=0;i<200;i ){ for( j=0;j<200;j ){ if (DecodeArray[i][j]==255) TempImage->Canvas->Pixels[i][j]=(TColor)RGB(0,0,0) ; else TempImage->Canvas->Pixels[i][j]=(TColor)RGB(255,255,255) ; } }
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-13 09:36:22 IP:221.169.xxx.xxx 未訂閱
R, G, B 有個轉換的比值。 並不是直接 R/3 G/3 B/3 去找找書或搜一下站內文章就有了。
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-13 09:54:21 IP:210.68.xxx.xxx 未訂閱
您好: 勿一文多PO http://delphi.ktop.com.tw/topic.php?TOPIC_ID=70907 PO程式碼的方式請參考版規說明,煩請修改謝謝您的配合 >
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-13 22:21:30 IP:211.76.xxx.xxx 未訂閱
plays2tw 您好:    建議在處理彩色圖形時,將圖形的Bitmap->PixelFormat格式,設為pf24bit,如下所示.
引言: 爲什麼將圖轉換成0 與 255,但是show 出來的圖卻不是黑白的..而是近似於咖啡色 另外我去抓取存入的值(存入的應該是0與255),發現值會跑掉,RGB不再是0與255。 我想出錯的原因在此..但是這該如何解決呢?一直找不到方法 麻煩熟悉的人,可以幫我解答一下..謝謝。 以下兩個程式碼出現的圖都是咖啡色
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  int SrcWidth,SrcHeight;
  int i,j,d_R;      SrcWidth=SrcImage->Picture->Bitmap->Width;
  SrcHeight=SrcImage->Picture->Bitmap->Height;
  
  TempImage->Picture->Bitmap->PixelFormat = pf24bit;
  SrcImage->Picture->Bitmap->PixelFormat = pf24bit;
  
  for( i=0;iPicture->Bitmap->Canvas->Pixels[i][j]);
         if (d_R >= 128) {
          temp[i][j] = 255;
          TempImage->Canvas->Pixels[i][j]=(TColor)RGB(255,255,255) ;
          }
         else {
         temp[i][j] = 0;
         TempImage->Canvas->Pixels[i][j]=(TColor)RGB(0,0,0) ;
         }
     }
   }      ShowMessage(" 轉成黑白完畢!");    /**********************/
for( i=0;i<200;i  ){
     for( j=0;j<200;j  ){
      if (DecodeArray[i][j]==255)
         TempImage->Canvas->Pixels[i][j]=(TColor)RGB(0,0,0) ;
      else
         TempImage->Canvas->Pixels[i][j]=(TColor)RGB(255,255,255) ;
     }
  }
RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
plays2tw
一般會員


發表:5
回覆:2
積分:1
註冊:2004-05-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-14 09:20:51 IP:61.219.xxx.xxx 未訂閱
謝謝你,richtop 問題解決了^^
系統時間:2024-11-22 7:54:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!