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

OpenPictureDialog發生錯誤的問題!!

答題得分者是:dean
wallaces528
一般會員


發表:4
回覆:5
積分:1
註冊:2004-04-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-13 15:18:19 IP:192.192.xxx.xxx 未訂閱
請教各位 以下是OpenDialog 的元件的 Filer 設定的預設值.. All (*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf)|*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf|JPEG Image File (*.jpg)|*.jpg|JPEG Image File (*.jpeg)|*.jpeg|Bitmaps (*.bmp)|*.bmp|Icons (*.ico)|*.ico|Enhanced Metafiles (*.emf)|*.emf|Metafiles (*.wmf)|*.wmf 設定好了之後!!但是在run的時候發現.. 1.在開啟時,並不是所有的圖檔格式都會出現. 2.重新寫另外一個程式在開圖檔時,可以開啟所有種類的圖檔,但是在開啟.jpg檔的時候有時是正常,但是有的時候確會出現錯誤訊息!!如下: Project project1.exe raised exception class EJPEG with message 'JPEG error #52'. Process stopped. Use Steop or Run to continue. 請問要如何解決呢? 程式如下 void __fastcall TForm1::LoadPictureClick(TObject *Sender) { if(OpenPictureDialog1->Execute()) { Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName); } } 謝謝.. 或是哪邊有開啟圖檔的教學文章或是完整的範例.. 發表人 - taishyang 於 2004/05/13 15:23:03
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-13 15:40:26 IP:61.230.xxx.xxx 未訂閱
wallaces528你好: OpenDialog 不是萬能的,它的功能是選取檔案名稱,真正開啟檔案的 是Image1->Picture->LoadFromFile,BCB裡這個指令只能開始bitmap 之類的檔案,如果要開jpeg,gif..等等檔案,必須使用另外一種方法 才可以開啟,那個錯誤訊息意思是,loadfromfile開不了jpeg檔。 站內有很多開圖檔的文章和發表程式,建議你搜尋一下 【問題】關於bmp檔轉JPEG檔原理 http://delphi.ktop.com.tw/topic.php?topic_id=48593 【BCB】【問題】BCB 好像沒支援JPEG 圖檔 http://delphi.ktop.com.tw/topic.php?topic_id=26041 發表人 - jerrykuo 於 2004/05/13 16:01:17
wallaces528
一般會員


發表:4
回覆:5
積分:1
註冊:2004-04-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-13 18:59:09 IP:192.192.xxx.xxx 未訂閱
感謝JerryKuo的回答   因為我還是對>>>>>>>>
dean
一般會員


發表:24
回覆:60
積分:21
註冊:2003-08-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-13 19:14:14 IP:61.222.xxx.xxx 未訂閱
WALLACES528您好: 在OPENDIALOG中有一個FILTERINDEX可以選擇您的圖檔。 有了FILTERINDEX您可以知道圖檔的編碼!就可以用下面去做判斷式     
 if (OpenPictureDialog1->Execute())
        { 
            if (OpenPictureDialog1->FilterIndex==1)   //如BMP
                 .....
            if (OpenPictureDialog1->FilterIndex==2)   //如JPG
        }
               
**我很想學,但又很不懂,所以一直問蠢問題,希望不要不屑我的問題,嘻嘻嘻**
wallaces528
一般會員


發表:4
回覆:5
積分:1
註冊:2004-04-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-13 20:26:40 IP:192.192.xxx.xxx 未訂閱
感謝Dean前輩.. 我試了以下的程式,可以正常開.>>>>>>>>>>>>
wallaces528
一般會員


發表:4
回覆:5
積分:1
註冊:2004-04-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-13 20:47:36 IP:192.192.xxx.xxx 未訂閱
引言: WALLACES528您好: 在OPENDIALOG中有一個FILTERINDEX可以選擇您的圖檔。 有了FILTERINDEX您可以知道圖檔的編碼!就可以用下面去做判斷式
 if (OpenPictureDialog1->Execute())
        { 
            if (OpenPictureDialog1->FilterIndex==1)   //如BMP
                 .....
            if (OpenPictureDialog1->FilterIndex==2)   //如JPG
        }
               
**我很想學,但又很不懂,所以一直問蠢問題,希望不要不屑我的問題,嘻嘻嘻**
非常感謝Dean前輩的方法 我根據他的方法更改了程式如下 void __fastcall TForm1::Open1Click(TObject *Sender) { TJPEGImage *Jpg = new TJPEGImage;; if (OpenPictureDialog1->Execute()) { if (OpenPictureDialog1->FilterIndex==1) { // Image1->AutoSize = true; Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName); } else if (OpenPictureDialog1->FilterIndex==0 ) { Jpg->LoadFromFile(OpenPictureDialog1->FileName); Image1->Picture->Bitmap->Assign(Jpg); } } } 已經OK了,之前有問題是出在filterindex上.. 謝謝..
系統時間:2024-05-19 3:10:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!