全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1130
推到 Plurk!
推到 Facebook!

請問各位如何將翻轉後的圖片背景更改色彩呢?

尚未結案
tony-ufo
一般會員


發表:7
回覆:8
積分:3
註冊:2003-08-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-17 22:11:17 IP:140.127.xxx.xxx 未訂閱
急!急!急! 可否請問各位如何將翻轉後的圖片背景更改色彩呢? (翻轉後背景為白色 是否有方法輸入RGB的色度0~255去作更改呢?)
taishyang
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-17 22:54:46 IP:140.135.xxx.xxx 未訂閱
tony-ufo您好: 文章當中切勿含有[急][求救]等無意義的字眼< >] 謝謝您的配合< > 方便將您的程式碼PO上來嗎?好讓有經驗的人可以幫您 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
tony-ufo
一般會員


發表:7
回覆:8
積分:3
註冊:2003-08-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-17 23:46:01 IP:140.127.xxx.xxx 未訂閱
void __fastcall TForm1::Button3Click(TObject *Sender) {  Image2->AutoSize=true;  int angle=StrToInt(Edit3->Text);  Graphics::TBitmap *Bitmap1=new Graphics::TBitmap;  Graphics::TBitmap *Bitmap2=new Graphics::TBitmap;  Bitmap1->Assign(Image1->Picture->Bitmap);     float radians=(2*3.1416*angle)/360;     float cosine=(float)cos(radians);  float sine=(float)sin(radians);     float Point1x=(-Bitmap1->Height*sine);  float Point1y=(Bitmap1->Height*cosine);  float Point2x=(Bitmap1->Width*cosine-Bitmap1->Height*sine);  float Point2y=(Bitmap1->Height*cosine+Bitmap1->Width*sine);  float Point3x=(Bitmap1->Width*cosine);  float Point3y=(Bitmap1->Width*sine);     float minx=min(0,min(Point1x,min(Point2x,Point3x)));  float miny=min(0,min(Point1y,min(Point2y,Point3y)));  float maxx=max(Point1x,max(Point2x,Point3x));  float maxy=max(Point1y,max(Point2y,Point3y));     int Bitmap2Width=(int)ceil(maxx-minx);  int Bitmap2Height=(int)ceil(maxy-miny);     Bitmap2->Height=Bitmap2Height;  Bitmap2->Width=Bitmap2Width;  for(int x=0;x=0&&Bitmap1xWidth&&Bitmap1y>=0&& Bitmap1yHeight) { Bitmap2->Canvas->Pixels[x][y]=Bitmap1->Canvas->Pixels[Bitmap1x][Bitmap1y]; } } } Image2->Picture->Bitmap=Bitmap2; delete Bitmap2; delete Bitmap1; }
taishyang
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-17 23:55:30 IP:140.135.xxx.xxx 未訂閱
tony-ufo您好: 請參考下面連結讓您的程式碼方便閱讀 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=40594 謝謝您的配合 請問您的 >
tony-ufo
一般會員


發表:7
回覆:8
積分:3
註冊:2003-08-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-18 00:12:33 IP:140.127.xxx.xxx 未訂閱
如右方翻轉後的圖 要把白色的背景變成可調的RGB顏色
taishyang
站務副站長


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-18 00:38:59 IP:140.135.xxx.xxx 未訂閱
tony-ufo您好: 請問您白色的部分要用什麼顏色塗滿呢? 跟Form一樣嗎?    順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
tony-ufo
一般會員


發表:7
回覆:8
積分:3
註冊:2003-08-06

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-18 00:43:42 IP:140.127.xxx.xxx 未訂閱
由右圖的text輸入RGB三色的值(0~255) 去改變右邊圖片翻轉後的白色邊緣
taishyang
站務副站長


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-11-18 00:58:45 IP:140.135.xxx.xxx 未訂閱
tony-ufo您好: 那試試下面的code
Image2->AutoSize=true;
 int angle=StrToInt(Edit2->Text);
 Graphics::TBitmap *Bitmap1=new Graphics::TBitmap;
 Graphics::TBitmap *Bitmap2=new Graphics::TBitmap;
 Bitmap1->Assign(Image1->Picture->Bitmap);
 float radians=(2*3.1416*angle)/360;
 float cosine=(float)cos(radians);
 float sine=(float)sin(radians);
 float Point1x=(-Bitmap1->Height*sine);
 float Point1y=(Bitmap1->Height*cosine);
 float Point2x=(Bitmap1->Width*cosine-Bitmap1->Height*sine);
 float Point2y=(Bitmap1->Height*cosine Bitmap1->Width*sine);
 float Point3x=(Bitmap1->Width*cosine);
 float Point3y=(Bitmap1->Width*sine);
 float minx=min(0,min(Point1x,min(Point2x,Point3x)));
 float miny=min(0,min(Point1y,min(Point2y,Point3y)));
 float maxx=max(Point1x,max(Point2x,Point3x));
 float maxy=max(Point1y,max(Point2y,Point3y));
 int Bitmap2Width=(int)ceil(maxx-minx);
 int Bitmap2Height=(int)ceil(maxy-miny);
 Bitmap2->Height=Bitmap2Height;
 Bitmap2->Width=Bitmap2Width;
 Bitmap2->PixelFormat=pf24bit;
 for(int y=0;yScanLine[y];
   for(int x=0;xText.ToInt();
    ptr[x*3 1]=Edit2->Text.ToInt();
    ptr[x*3]=Edit3->Text.ToInt();
   }
 }
 for(int x=0;x=0&&Bitmap1xWidth&&Bitmap1y>=0&&Bitmap1yHeight)
   {
    Bitmap2->Canvas->Pixels[x][y]=Bitmap1->Canvas->Pixels[Bitmap1x][Bitmap1y];
   }
  }
 }
Image2->Picture->Bitmap=Bitmap2;
delete Bitmap2;
delete Bitmap1;
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
tony-ufo
一般會員


發表:7
回覆:8
積分:3
註冊:2003-08-06

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-11-18 01:11:22 IP:140.127.xxx.xxx 未訂閱
謝謝版主的大力幫忙~~ 真是麻煩你了~~ 感激不盡!!
系統時間:2024-05-06 4:52:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!