如何連續存JPEG圖檔於預設資料夾中撥放?? |
尚未結案
|
wardrobe
一般會員 發表:8 回覆:5 積分:2 註冊:2006-07-24 發送簡訊給我 |
我將BMP檔壓縮成JPEG檔
然後將圖檔連續儲存於資料夾中 但是都會只有一張JPEG檔 而第二張就會覆蓋第一張圖檔 如何連續儲存多張圖檔 我是利用bcb元件來進行壓縮 void __fastcall TForm1::Button5Click(TObject *Sender) { AnsiString FN_Temp="test.BMP"; AnsiString FN ="test.JPG"; Graphics::TBitmap *bmp; TJPEGImage *jpg; bmp = new Graphics::TBitmap(); jpg = new TJPEGImage(); bmp->LoadFromFile(FN_Temp); jpg->Assign(bmp); jpg->CompressionQuality=5; jpg->SaveToFile(FN); Image2->Picture->Assign(jpg); delete jpg; delete bmp; } 然後透過撥放器撥出連續圖檔 而我程式撥放器如下 void __fastcall TForm1::Timer1Timer(TObject *Sender) { iframe = (iframe 1) % 150; TrackBar1->Position = iframe; AnsiString filename; filename = IntToStr(iframe) ".jpg"; Image1->Picture->LoadFromFile("e:\\data\\" filename) ; } data是我存檔的資料夾 如何能將壓縮程式修改成儲存多張圖檔再利用撥放器撥放出來 希望高手能指點迷津?? |
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
電腦目前沒有安裝 BCB, 只能口頭說明
您撥放的檔案名稱使用 forbidden 算出, 所以是 ( 沒看到您預設多少, 假設是 0 , (0 1) % 150 = 1 第1秒讀取 1.jpg 第2秒讀取 2.jpg ... 第149秒讀取 0.jpg (因為 (149 1) % 150 = 0.jpg ) 第150秒讀取 1.jpg ... ********************************** 您撥放的檔案名稱卻永遠是 test.jpg AnsiString FN ="test.JPG"; ... jpg->SaveToFile(FN); 如果您要將 bmp 檔案存成不同壓縮品質的 jpg 應該是 for ( i=0; i ; i<150 ) { jpg->CompressionQuality=i; if (i>100) jpg->CompressionQuality = 100; filename = IntToStr(i) ".jpg"; jpg->SaveToFile(filename); } 這樣會產生 150 個圖片, 品質從 0 到 100
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
wardrobe
一般會員 發表:8 回覆:5 積分:2 註冊:2006-07-24 發送簡訊給我 |
要如何修改才不會檔名永遠是test.jpg檔
我也把你ㄉ程式碼放進去修改 還是沒辦法存成150張 而且我用視訊錄影擷取播放中的畫面存成ㄉbmp檔沒辦法存成150張 不管哪個部份 可能需要一起修改看看 可以請在指教嗎?? 視訊錄影播放畫面擷取ㄉ程式碼: void __fastcall TForm1::Button3Click(TObject *Sender) { Graphics::TBitmap *bmp; TCanvas *MCanvas; HDC dc; TRect rect; String name; ScrollBar1->Position = MediaPlayer1->Position; MediaPlayer1->Frames = 1; try { bmp = new Graphics::TBitmap; MCanvas = new TCanvas; rect = MediaPlayer1->DisplayRect; dc = GetDC(Panel2->Handle); MCanvas->Handle = dc; bmp->Width = rect.Right - rect.Left; bmp->Height= rect.Bottom - rect.Top; bmp->Canvas->CopyRect(rect,MCanvas,rect); name = "test.BMP"; bmp->SaveToFile(name); } catch(...){} ReleaseDC(0,dc); Image1->Picture->Assign(bmp); delete bmp; delete MCanvas; } |
wardrobe
一般會員 發表:8 回覆:5 積分:2 註冊:2006-07-24 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |