請問一下ScrollBox的應用 |
尚未結案
|
ayuen
一般會員 發表:19 回覆:34 積分:10 註冊:2003-07-31 發送簡訊給我 |
請問一下如果我要把一張1024*1024的Image顯示出來但是螢幕大小只有1024*768那我要如何把一張1024*1024的圖檔放在ScrollBox內利用ScrollBox來
顯示出其他地方
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
BYTE *pixel=NULL;
pixel=new BYTE[1048576];
ZeroMemory(pixel, 1048576);
byte color; if (OpenDialog1->Execute())
{
Form1->Caption=OpenDialog1->FileName;
TMemoryStream* ima = new TMemoryStream();
ima->LoadFromFile(OpenDialog1->FileName); BYTE bBuf=0; for (int i=0;i < ima->Size;i++)
{
ima->Position=i;
bBuf=i;
ima->Read(&bBuf,1);
pixel[i]=bBuf;
}
lbl1->Caption=ima->Size;
lbl2->Caption=pixel[0];
lbl3->Caption=pixel[1];
delete ima;
}
Image1->AutoSize=true;
Image1->Stretch=false;
for (int y=0;y<1024;y )
{
for (int x=0;x<1024;x )
{
color=TColor(pixel[1024*y x]);
SetPixel(Image1->Canvas->Handle, x,y,TColor(RGB(color,color,color)));
}
}
delete pixel;
}
//--------------------------------------------------------------------------- 發表人 - ayuen 於 2003/09/28 16:15:41
|
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
|
ayuen
一般會員 發表:19 回覆:34 積分:10 註冊:2003-07-31 發送簡訊給我 |
|
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
|
ayuen
一般會員 發表:19 回覆:34 積分:10 註冊:2003-07-31 發送簡訊給我 |
|
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
不然你試試看這樣好了~ 加入綠色的地方~ <>< face="Verdana, Arial, Helvetica">引言:
請問一下如果我要把一張1024*1024的Image顯示出來但是螢幕大小只有1024*768那我要如何把一張1024*1024的圖檔放在ScrollBox內利用ScrollBox來 顯示出其他地方 __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { BYTE *pixel=NULL; pixel=new BYTE[1048576]; ZeroMemory(pixel, 1048576); byte color; if (OpenDialog1->Execute()) { Form1->Caption=OpenDialog1->FileName; TMemoryStream* ima = new TMemoryStream(); ima->LoadFromFile(OpenDialog1->FileName); BYTE bBuf=0; for (int i=0;i < ima->Size;i ) { ima->Position=i; bBuf=i; ima->Read(&bBuf,1); pixel[i]=bBuf; } lbl1->Caption=ima->Size; lbl2->Caption=pixel[0]; lbl3->Caption=pixel[1]; delete ima; Image1->Picture->LoadFromFile(OpenDialog1->FileName); } Image1->AutoSize=true; Image1->Stretch=false; for (int y=0;y<1024;y ) { for (int x=0;x<1024;x ) { color=TColor(pixel[1024*y x]); SetPixel(Image1->Canvas->Handle, x,y,TColor(RGB(color,color,color))); } } delete pixel; } //--------------------------------------------------------------------------- 發表人 - ayuen 於 2003/09/28 16:15:41國泰平安 |
ayuen
一般會員 發表:19 回覆:34 積分:10 註冊:2003-07-31 發送簡訊給我 |
|
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
|
ayuen
一般會員 發表:19 回覆:34 積分:10 註冊:2003-07-31 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
ayuen您好:
假如您讀取RAW影像是參考我之前寫法的話(因為變數得命名方式很雷同)
請改成下面的方式(比較好也比較快),之前的寫法多費一道工
< class="code">
TMemoryStream* ima=new TMemoryStream();
ima->LoadFromFile("1.ima");
int dwSize=ima->Size;
BYTE* pixel=new BYTE[dwSize];
ima->Read(pixel, dwSize);
Graphics::TBitmap* BMP=new Graphics::TBitmap(); //解決您問題的方式
BMP->Width=1024;
BMP->Height=1024;
for (int y=0;y
|
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
ayuen
一般會員 發表:19 回覆:34 積分:10 註冊:2003-07-31 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
ayuen
一般會員 發表:19 回覆:34 積分:10 註冊:2003-07-31 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
ayuen
一般會員 發表:19 回覆:34 積分:10 註冊:2003-07-31 發送簡訊給我 |
|
ayuen
一般會員 發表:19 回覆:34 積分:10 註冊:2003-07-31 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |