全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3669
推到 Plurk!
推到 Facebook!

bmp轉avi的問題

 
akway
一般會員


發表:1
回覆:11
積分:2
註冊:2006-08-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-08-25 18:52:50 IP:140.130.xxx.xxx 訂閱
---這個蠻常遇到的,一直不大了解它的意思
[C Error] avi_utils.h(34): E2303 Type name expected
[C Error] Unit1.cpp(22): E2268 Call to undefined function 'CreateAvi'
[C Error] Unit1.cpp(22): E2034 Cannot convert 'int' to 'void *'
[C Error] Unit1.cpp(34): E2268 Call to undefined function 'Closeavi'

以下是程式碼
void __fastcall TForm1::Button1Click(TObject *Sender)
{
const char *fns[] = {"1.bmp","2.bmp","3.bmp","4.bmp","5.bmp"};
此外,
sizeof(fns)/sizeof(fns[0]) 這個我也不大懂它的意思
for (int i=0; {
HBITMAP hbm=LoadImage(NULL,fns[i],IMAGE_BITMAP,0,0,

LR_LOADFROMFILE|LR_CREATEDIBSECTION);

DeleteObject(hbm);

}
char tmp[100][100];
不過似乎沒辦法直接指定 tmp=image1->bitmap;
如果利用timer 就可以連續的把bmp丟到陣列中
然後再利用此陣列轉成avi
這是我看了bmp2avi範例程式的想法啦
不知道對不對?
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-08-25 22:59:28 IP:219.84.xxx.xxx 未訂閱

sizeof(xxx)->其實就是bitmap的檔案個數

先把Webcam的image存成DIB的格式,再給AVI的STREAM即可。

建議你先找本好的C 課本,

akway
一般會員


發表:1
回覆:11
積分:2
註冊:2006-08-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-08-27 23:29:06 IP:140.130.xxx.xxx 訂閱
我試過使用截取dib成檔案,再轉成avi
但是降的速度太慢了,因為要通過硬碟這個低速i/o裝置
所以才有降的想法,直接在記憶體中轉換
taishyang
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-08-29 09:44:28 IP:59.124.xxx.xxx 未訂閱
小弟沒記錯的話,VFW本身有提供將攝影機畫面存成AVI的Function
===================引 用 文 章===================
我試過使用截取dib成檔案,再轉成avi
但是降的速度太慢了,因為要通過硬碟這個低速i/o裝置
所以才有降的想法,直接在記憶體中轉換
akway
一般會員


發表:1
回覆:11
積分:2
註冊:2006-08-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-08-30 20:38:43 IP:210.192.xxx.xxx 訂閱
不能直接轉
因為我還要先對圖檔進行一些處理之後
才會轉成avi檔
===================引 用 文 章===================
小弟沒記錯的話,VFW本身有提供將攝影機畫面存成AVI的Function
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-09-08 15:28:59 IP:219.84.xxx.xxx 未訂閱

DIB不一定要透過硬碟IO,我指的是memory DIB。

AVI的寫入可以用memory DIB直接給video stream,速度會快許多

===================引 用 文 章===================
我試過使用截取dib成檔案,再轉成avi
但是降的速度太慢了,因為要通過硬碟這個低速i/o裝置
所以才有降的想法,直接在記憶體中轉換

taishyang
站務副站長


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2006-09-08 18:50:16 IP:59.124.xxx.xxx 未訂閱

試試這個吧

http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=41002


===================引 用 文 章===================
不能直接轉
因為我還要先對圖檔進行一些處理之後
才會轉成avi檔
===================引 用 文 章===================
小弟沒記錯的話,VFW本身有提供將攝影機畫面存成AVI的Function

akway
一般會員


發表:1
回覆:11
積分:2
註冊:2006-08-17

發送簡訊給我
#8 引用回覆 回覆 發表時間:2006-09-10 22:29:25 IP:61.223.xxx.xxx 訂閱
這個程式是由檔案轉的
並不是直接由記憶體轉的
不過還是謝謝你幫我的忙,找了文章
===================引 用 文 章===================

試試這個吧

http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=41002


===================引 用 文 章===================
不能直接轉
因為我還要先對圖檔進行一些處理之後
才會轉成avi檔
===================引 用 文 章===================
小弟沒記錯的話,VFW本身有提供將攝影機畫面存成AVI的Function

pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#9 引用回覆 回覆 發表時間:2006-09-12 00:11:52 IP:219.84.xxx.xxx 未訂閱

你所列的網址裡面的就有提到用memory DIB的方法,在

"To create an AVI from dynamically-drawn images"

之後利的程式碼


===================引 用 文 章===================
這個程式是由檔案轉的
並不是直接由記憶體轉的
不過還是謝謝你幫我的忙,找了文章
===================引 用 文 章===================

試試這個吧

http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=41002


===================引 用 文 章===================
不能直接轉
因為我還要先對圖檔進行一些處理之後
才會轉成avi檔
===================引 用 文 章===================
小弟沒記錯的話,VFW本身有提供將攝影機畫面存成AVI的Function

akway
一般會員


發表:1
回覆:11
積分:2
註冊:2006-08-17

發送簡訊給我
#10 引用回覆 回覆 發表時間:2006-09-18 14:19:19 IP:61.223.xxx.xxx 訂閱
這支程式我有點問題想發問
第28行宣告了 for(int i=0;HBITMAP hbm=(HBITMAP)LoadImage(NULL,fns[i],IMAGE_BITMAP................略)
都是使用一維的fns,這是代表程式是由下列方式掃描嗎
fns[0][0], fns[1][0], ~ fns[1000][0], fns[0][1],fns[1][1] ~ fns[1000][1] ~~ fns[1000][100]

===================引 用 文 章===================

試試這個吧

http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=41002


===================引 用 文 章===================
不能直接轉
因為我還要先對圖檔進行一些處理之後
才會轉成avi檔
===================引 用 文 章===================
小弟沒記錯的話,VFW本身有提供將攝影機畫面存成AVI的Function

pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#11 引用回覆 回覆 發表時間:2006-09-18 20:47:23 IP:219.84.xxx.xxx 未訂閱


這和"真正"的二維陣列是不同的:

true_2d_array[2][1]會被編譯成 *(*(true_2d_array 2) 1)

很多人分不清楚這兩個的差別,包含記憶體的分佈、呼叫時的效率、和配置上的問題。

回到你的問題,

至於第二個問題fns[i]會被編譯成((char*)fns i*100),和你想像的"二維陣列"是不同的東西。

char fns[1000][100]
可是在33行處,為什麼可以直接用ii )
不是宣告成二維陣列嗎?怎麼使用一維的fns[0]呢
fns[0]是代表fns[0][0]的意思嗎?
35行也是
fns[i],IMAGE_BITMAP................略)
都是使用一維的fns,這是代表程式是由下列方式掃描嗎
fns[0][0], fns[1][0], ~ fns[1000][0], fns[0][1],fns[1][1] ~ fns[1000][1] ~~ fns[1000][100]

===================引 用 文 章===================

試試這個吧

http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=41002


===================引 用 文 章===================
不能直接轉
因為我還要先對圖檔進行一些處理之後
才會轉成avi檔
===================引 用 文 章===================
小弟沒記錯的話,VFW本身有提供將攝影機畫面存成AVI的Function

dehn
一般會員


發表:3
回覆:5
積分:1
註冊:2006-08-09

發送簡訊給我
#12 引用回覆 回覆 發表時間:2007-01-29 20:45:15 IP:140.126.xxx.xxx 訂閱
各位大大您好:
我是剛接觸bmp轉avi的新手,我在網站上找了一些相關文章,試過很多方式還是不能解決問題,
想請問大大下面的問題要如何才能解決。謝謝。

[C Error] avi_utils.h(34): E2303 Type name expected
[C Error] Unit1.cpp(22): E2034 Cannot convert 'int' to 'void *'
[C Error] Unit1.cpp(34): E2268 Call to undefined function 'Closeavi'

akway
一般會員


發表:1
回覆:11
積分:2
註冊:2006-08-17

發送簡訊給我
#13 引用回覆 回覆 發表時間:2007-01-30 11:20:26 IP:202.132.xxx.xxx 訂閱
你引入的檔案avi_utils.h似乎有符號有錯
此外建議你直接引入avi_utils.cpp
不要引入header檔
他的header檔似乎有問題
===================引 用 文 章===================
各位大大您好:
我是剛接觸bmp轉avi的新手,我在網站上找了一些相關文章,試過很多方式還是不能解決問題,
想請問大大下面的問題要如何才能解決。謝謝。

[C Error] avi_utils.h(34): E2303 Type name expected
[C Error] Unit1.cpp(22): E2034 Cannot convert 'int' to 'void *'
[C Error] Unit1.cpp(34): E2268 Call to undefined function 'Closeavi'

dehn
一般會員


發表:3
回覆:5
積分:1
註冊:2006-08-09

發送簡訊給我
#14 引用回覆 回覆 發表時間:2007-01-31 13:10:03 IP:140.126.xxx.xxx 訂閱
謝謝akway的幫忙,已經解決問題了。
我在引入的地方沒弄好。
系統時間:2024-05-05 18:18:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!