在Image顯示和區域選取問題?? |
答題得分者是:ikk
|
kivers
一般會員 發表:5 回覆:1 積分:1 註冊:2008-02-20 發送簡訊給我 |
#include
#pragma hdrstop #include "Unit1.h" bool gbMDown=false; TRect grtLTRB; #define IMAGE_WIDTH 400<--這?? #define IMAGE_HEIGHT 400<--這?? //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { Panel1->Width=IMAGE_WIDTH 2*2; Panel1->Height=IMAGE_HEIGHT 2*2; Panel1->DoubleBuffered=true; Panel2->Width=IMAGE_WIDTH 2*2; Panel2->Height=IMAGE_HEIGHT 2*2; Image1->Width=IMAGE_WIDTH; Image1->Height=IMAGE_HEIGHT; Image1->Left=(Panel1->Width-Image1->Width)/2; Image1->Top=(Panel1->Height-Image1->Height)/2; Image1->Stretch=true; Image1->Picture->Bitmap->LoadFromFile("16bit-400x400.bmp"); PaintBox2->Width=IMAGE_WIDTH; PaintBox2->Height=IMAGE_HEIGHT; PaintBox2->Left=(Panel1->Width-PaintBox2->Width)/2; PaintBox2->Top=(Panel1->Height-PaintBox2->Height)/2; Image3->Width=IMAGE_WIDTH; Image3->Height=IMAGE_HEIGHT; Image3->Left=(Panel2->Width-Image3->Width)/2; Image3->Top=(Panel2->Height-Image3->Height)/2; Image3->Stretch=true; Image3->Canvas->Brush->Color=clWhite; Image3->Canvas->FillRect(Rect(0, 0, Image3->Width, Image3->Height)); } //--------------------------------------------------------------------------- void __fastcall TForm1::PaintBox2MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { gbMDown=true; grtLTRB.Left=X; grtLTRB.Top=Y; grtLTRB.Right=X; grtLTRB.Bottom=Y; } //--------------------------------------------------------------------------- void __fastcall TForm1::PaintBox2MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if(gbMDown) { if(X<0) X=0; if(X>PaintBox2->Width) X=PaintBox2->Width; if(Y<0) Y=0; if(Y>PaintBox2->Height) Y=PaintBox2->Height; PaintBox2->Canvas->CopyMode=cmSrcCopy; PaintBox2->Canvas->CopyRect(grtLTRB, Image1->Canvas, grtLTRB); grtLTRB.Right=X; grtLTRB.Bottom=Y; PaintBox2->Canvas->Brush->Style=bsClear; PaintBox2->Canvas->Pen->Style=psDot; PaintBox2->Canvas->Pen->Color=clBlack; PaintBox2->Canvas->Rectangle(grtLTRB); } Application->ProcessMessages(); } //--------------------------------------------------------------------------- void __fastcall TForm1::PaintBox2MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { gbMDown=false; PaintBox2->Canvas->CopyRect(Rect(0, 0, PaintBox2->Width, PaintBox2->Height), Image1->Canvas, Rect(0, 0, Image1->Width, Image1->Height)); Image3->Canvas->FillRect(Rect(0, 0, Image3->Width, Image3->Height)); Image3->Canvas->CopyRect(grtLTRB, Image1->Canvas, grtLTRB); Label2->Caption="被截取的區域: Rect(" IntToStr(grtLTRB.Left) ", " IntToStr(grtLTRB.Top) ", " IntToStr(grtLTRB.Right) ", " IntToStr(grtLTRB.Bottom) ")"; } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- 此為站上範例請問我想修改不指定矩陣大小.... 就依開啟任何圖檔大小 我須再哪一行怎麼修改??? |
ikk
尊榮會員 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
kivers
一般會員 發表:5 回覆:1 積分:1 註冊:2008-02-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |