能否幫小弟看一下,為何第二個JPEG圖秀不出來? |
答題得分者是:william
|
danielj
初階會員 發表:65 回覆:135 積分:40 註冊:2003-06-11 發送簡訊給我 |
小弟又來發問了,因為版上實在是有太多的高手,而且都願意撥冗協助小弟的難題,讓小弟獲益匪淺,今日再來打擾,也希望眾家大姐大哥再相助,先謝啦! 小弟這回想以最基本的方式叫出JPEG圖檔並顯示,但是不知何故,第一個可以顯示,但是第二個就顯示不出來,但是我去看第二個的寬高資料都是正常的,請高手開釋一下吧,謝啦! 小弟的程式碼如下:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
OpenDialog1->Filter = "JPEG檔案|*.jpg";
if (OpenDialog1->Execute())
{
TMemoryStream *myStream = new TMemoryStream;
TJPEGImage *jpg1 = new TJPEGImage();
TJPEGImage *jpg2 = new TJPEGImage();
AnsiString file_name = OpenDialog1->FileName ;
AnsiString FileExt = ExtractFileExt(file_name);
if (FileExt == ".jpg" || FileExt == ".jpeg")
{
jpg1->LoadFromFile(file_name);
Form1->Canvas->Draw(0,0,jpg1);
jpg1->SaveToStream(myStream);
myStream->Position = 0;
jpg2->LoadFromStream(myStream);
Form2->Canvas->Draw(0,0,jpg2);
Form2->Show();
delete jpg1;
delete jpg2;
delete myStream;
}
}
}
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
danielj
初階會員 發表:65 回覆:135 積分:40 註冊:2003-06-11 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
引言: 那麼第一個圖能出來的原因是,原本Form1一開始就會show出來了,所以不用先寫 Form1->Show(); 也可以看到圖囉?Yes, but a repaint of the form will erase the image. You may want to place a TImage on the form and draw on its canvas. TImage will store the image in an internal bitmap and it can repaint itself. |
danielj
初階會員 發表:65 回覆:135 積分:40 註冊:2003-06-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |