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

Borland c++開啟圖檔

尚未結案
wd7142
一般會員


發表:18
回覆:19
積分:7
註冊:2004-01-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-11 23:48:09 IP:218.163.xxx.xxx 未訂閱
請問各位大大們,如何去找出圖檔每個點的值,是否是使用一般開啟二進位檔 或者是用fread去讀呢?....請求幫忙~~
taishyang
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-11 23:56:25 IP:140.135.xxx.xxx 未訂閱
wd7142您好: BCB中
Image1->Canvas->Pixels[x][y]
可以取得座標(x,y)的像素值 順心
wd7142
一般會員


發表:18
回覆:19
積分:7
註冊:2004-01-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-12 00:00:06 IP:218.163.xxx.xxx 未訂閱
引言: wd7142您好: BCB中
Image1->Canvas->Pixels[x][y]
可以取得座標(x,y)的像素值 順心 < face="Verdana, Arial, Helvetica"> 嗯嗯...我懂!! 不過我是要使用Borland c 而不是BCB,二者應該是不一樣的吧? 第一次碰,如有冒犯請多多包函!!
taishyang
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-12 00:05:38 IP:140.135.xxx.xxx 未訂閱
wd7142您好: 那試試下面的code可將一張200*160的彩色影像轉成灰階影像
int main(int argc, char* argv[])
{
  FILE *fp1,*fp2;
  unsigned char headfile[54];      
  unsigned char buf[200*3];
  unsigned char buf1[200*3];
  int x,y;
  fp1 = fopen("200x160.bmp","rb");
  fp2 = fopen("200x160Gray.bmp","wb");
  fread(headfile,sizeof(char),54,fp1);
  fwrite(headfile,sizeof(char),54,fp2);
  for(y=0 ; y<160 ; y  )
  {
    fread(buf,sizeof(char),200*3,fp1);
    for(x=0 ; x<200 ; x  )
    {
      int gray = (buf[x*3] buf[x*3 1] buf[x*3 2])/3;
      buf1[x*3]   = gray ;
      buf1[x*3 1] = gray ;
      buf1[x*3 2] = gray ;
    }
    fwrite(buf1,sizeof(char),200*3,fp2);
  }
    fclose(fp1);
    fclose(fp2);
    printf("轉灰階OK!!");
    getch();
    return 0;
}
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
wd7142
一般會員


發表:18
回覆:19
積分:7
註冊:2004-01-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-12 00:50:53 IP:218.163.xxx.xxx 未訂閱
引言: wd7142您好: 那試試下面的code可將一張200*160的彩色影像轉成灰階影像
int main(int argc, char* argv[])
{
  FILE *fp1,*fp2;
  unsigned char headfile[54];      
  unsigned char buf[200*3];
  unsigned char buf1[200*3];
  int x,y;
  fp1 = fopen("200x160.bmp","rb");
  fp2 = fopen("200x160Gray.bmp","wb");
  fread(headfile,sizeof(char),54,fp1);
  fwrite(headfile,sizeof(char),54,fp2);
  for(y=0 ; y<160 ; y  )
  {
    fread(buf,sizeof(char),200*3,fp1);
    for(x=0 ; x<200 ; x  )
    {
      int gray = (buf[x*3] buf[x*3 1] buf[x*3 2])/3;
      buf1[x*3]   = gray ;
      buf1[x*3 1] = gray ;
      buf1[x*3 2] = gray ;
    }
    fwrite(buf1,sizeof(char),200*3,fp2);
  }
    fclose(fp1);
    fclose(fp2);
    printf("轉灰階OK!!");
    getch();
    return 0;
}
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ < face="Verdana, Arial, Helvetica"> 嗯嗯~~~這個程式對我幫助很大!! 那請問你還有類似可參考的嗎?...因為剛接觸想多了解一些!! 真是非常謝謝你了^^"...
系統時間:2024-05-04 13:59:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!