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

連續存圖檔的問題

答題得分者是:taishyang
plihui
初階會員


發表:88
回覆:96
積分:41
註冊:2003-07-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-22 20:26:56 IP:218.168.xxx.xxx 未訂閱
今天牛雕小試了一個程式: 程式的目的僅僅是將在相同目錄夾底下的圖檔(且不同長寬) copy一份到我指定的目錄夾 程式中設2個TImage元件 (Image1:顯示開檔的圖, Image2:用來存圖) 圖是存進去了,但指定的目錄夾中所有的圖檔的長寬居然同為 第一個開啟圖檔的長寬(所以部份圖檔的圖為原圖的一部份) 不曉得諸位大大可否指點一下 程式碼如下:
void __fastcall TForm1::BtnClick(TObject *Sender)
{
  AnsiString Dir_C=DirectoryListBox1->Directory;
  for(int i=0;iCount;i  )
  {
    ClearImage(Image1);//將整張Image清空為白色
    AnsiString file_name=FileListBox1->Items->Strings[i] ;
    AnsiString save_contour=Dir_C;
    save_contour ="\\Contour\\";
    save_contour =file_name;
    Image1->Picture->LoadFromFile(file_name);
    ShowMessage(save_contour);
    w=Image1->Picture->Width;
    h=Image1->Picture->Height;
    Image2->Width=w;
    Image2->Height=h;
    ClearImage(Image2);
    for(int x=0;xCanvas->Pixels[x][y]=Image1->Canvas->Pixels[x][y];
     }
    AnsiString str="長:";
    str =w;str ="寬:";str =h;
    Memo1->Lines->Add(str);        Image2->Picture->SaveToFile(save_contour);
    ClearImage(Image2);
  }
  ShowMessage("Over");
}

中階會員


發表:36
回覆:142
積分:70
註冊:2003-07-24

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-23 02:03:21 IP:163.23.xxx.xxx 未訂閱
plihui 您好:    您可以試試在 Object Inspector 或 program 其中之一 將 Image1 的 AutoSize 與 Stretch 都設為 true    希望對您有幫助
plihui
初階會員


發表:88
回覆:96
積分:41
註冊:2003-07-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-23 13:27:46 IP:140.126.xxx.xxx 未訂閱
還是不行耶......tt
taishyang
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-23 13:43:47 IP:140.135.xxx.xxx 未訂閱
plihui您好: 注意一下TImage的寬高與真實影像的寬高是否一致 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=44857 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
plihui
初階會員


發表:88
回覆:96
積分:41
註冊:2003-07-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-23 13:57:17 IP:140.126.xxx.xxx 未訂閱
剛檢查過了.... 如果說單一存圖檔的話 是沒有問題的.... 但是...一次存多圖檔的話....卻是有下面的問題 ex:> 1.bmp(100*100)->r1.bmp(100*100) 2.bmp(320*320)->r2.bmp(100*100) 3.bmp(30*30)->r3.bmp(100*100)??
taishyang
站務副站長


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-23 14:34:21 IP:140.135.xxx.xxx 未訂閱
plihui您好: 試試將
for(int x=0;xCanvas->Pixels[x][y]=Image1->Canvas->Pixels[x][y];
  }
改成Image2->Picture->Assign(Image1->Picture);
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
plihui
初階會員


發表:88
回覆:96
積分:41
註冊:2003-07-03

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-23 20:48:24 IP:61.230.xxx.xxx 未訂閱
感謝大大指導.... 但是如果說我要將Image1一部份的資訊要更改 比如說(Image2為原Image1的反白/負片) 那Image2->Picture->Assign(Image1->Picture)這招 則無用武之地?! 唉...單一檔案沒問題....但連續檔案存檔卻有問題 到底問題出在哪裡呢?!苦惱中?!(T_T) TImage...我真是搞不懂
taishyang
站務副站長


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-02-23 20:57:27 IP:140.135.xxx.xxx 未訂閱
plihui您好:
引言: 比如說(Image2為原Image1的反白/負片) 那Image2->Picture->Assign(Image1->Picture)這招 則無用武之地
不會壓,
Image2->Picture->Assign(Image1->Picture)
是讓Image1的圖給Image2,所以不論Image1是什麼樣的圖片 Image2都是和Image1是一樣的圖片 或是將
w=Image1->Picture->Width;
h=Image1->Picture->Height;
改成
w=Image1->Picture->Bitmap->Width;
h=Image1->Picture->Bitmap->Height;
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
plihui
初階會員


發表:88
回覆:96
積分:41
註冊:2003-07-03

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-02-23 21:34:55 IP:61.230.xxx.xxx 未訂閱
感謝taishyang大大指導 果然還是要高手指點ㄚ...!!
系統時間:2024-04-28 8:21:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!