HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

AVI állományok kezelése programból


AVI 1. rész

Példaprogram letöltése

160630 bájt

Most induló sorozatunkban az AVI állományok programból történő feldolgozásával foglalkozunk. Megnézzük azt, hogy miként tudjuk egy AVI állományból kiolvasni annak jellemző tulajdonságait, mint például, hogy milyen hosszú a film, mekkora méretű a kép, stb. Megoldást keresünk arra is, hogy miként tudjuk az AVI-ban tárolt képeket (frame) egyesével lementeni akár egy BMP-be, így a film minden egyes kockája önálló képként is elérhetővé válik.

AVI állományok kezeléséhez az avifil32.dll-ben lévő interfészek, függvények fognak segíteni bennünket, mely már a Windows 95, illetve az NT 3.1 óta rendelkezésre állnak. Már csak arról kell gondoskodnunk, hogy Delphi-ből elérhessük ezeket. Ehhez hozzuk létre az Avi.pas-t, melyben adottak a szükséges deklarációk az interfészek és függvény eléréséhez.
Nézzük miként használhatjuk az avifil32.dll függvényeit arra, hogy meghatározzuk egy tetszőleges AVI tulajdonságait:
procedure TForm1.Button1Click(Sender: TObject);
var
  af: PAVIFile;
  afi: TAVIFileInfo;
begin
  if OpenDialog1.Execute then begin
    ListBox1.Items.Clear;
Az első teendőnk az inicializálás, melyet az AVIFileInit függvény végez, nekünk csak meg kell hívnunk. Ezt követően megnyithatjuk az adott AVI-t az AVIFileOpen függvénnyel. Ennél az első paraméterben egy mutatót kell átadnunk, melybe visszakapunk egy IAVIFile interfészre mutató pointert. A második paraméter lesz a megnyitandó AVI állomány, majd a harmadikban a megnyitás módját adhatjuk meg, melyek az alábbiak lehetnek:
  • OF_CREATE
  • OF_SHARE_DENY_NONE
  • OF_SHARE_DENY_READ
  • OF_SHARE_DENY_WRITE
  • OF_SHARE_EXCLUSIVE
  • OF_READ
  • OF_READWRITE
  • OF_WRITE
    AVIFileInit;
    if AVIFileOpen(af, PChar(OpenDialog1.FileName), OF_READ, nil)=AVIERR_OK then begin
A megnyitást követően a szükséges információkat az AVIFileInfo függvény kérdezi le. Ennek első paraméterként az imént kapott IAVIFile interfészt kell átadnunk, majd másodikként egy TAVIFileInfo struktúrát, melybe a lekérdezés eredményét kapjuk, végül e struktúra méretét kell átadni. A függvény lefutása után nincs más teendőnk, mint kiolvasni a struktúra számunkra érdekes adatait.
      if AVIFileInfo(af, afi, SizeOf(TAVIFileInfo))=0 then begin
        ListBox1.Items.Add('Frame Width: ' + IntToStr(afi.dwWidth));
        ...
       end;
     ...
  end;
end;

Cikksorozat

#IDKategóriaCikk címeSorozat
1488DelphiMS SQL tárolt eljárások1. rész
1499DelphiMS SQL tárolt eljárások2. rész
1507DelphiMS SQL tárolt eljárások3. rész
1519DelphiMS SQL tárolt eljárások4. rész
1526DelphiMS SQL tárolt eljárások5. rész
1537DelphiMS SQL tárolt eljárások6. rész
1546DelphiMS SQL tárolt eljárások7. rész
1553DelphiMS SQL tárolt eljárások8. rész
1564DelphiMS SQL tárolt eljárások9. rész
1573DelphiMS SQL tárolt eljárások10. rész
1582DelphiMS SQL tárolt eljárások11. rész
1591DelphiMS SQL tárolt eljárások12. rész
1600DelphiMS SQL tárolt eljárások13. rész
1609DelphiMS SQL tárolt eljárások14. rész
1617DelphiMS SQL tárolt eljárások15. rész
1626DelphiMS SQL tárolt eljárások16. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 397. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |