Мультимедиа және анимация


Жұмыс түрі: Материал
Тегін: Антиплагиат
Көлемі: 11 бет
Таңдаулыға:
Мультимедиа және анимация
Көптеген графикалық файлдар форматы секілді дыбыстық файлдар мен мультимедиа саны да баршылық. Бұл екі файлдар тобын бірдей дәрежеде сипаттап өткен жөн, өйткені мультимедиа файлдары көптеген жағдайда дыбыс жолағымен кездеседі. Сондықтан да дыбыс туралы сөз болғанда, мультимедиадағы дыбыстың ролін атап өтпеген қателік болар.
Ең қарапайым дыбыстық файл ретінде . wav деген толқындық файлды атап өтуге болады. Онда әр дыбысқа сәйкес келетін электрлік сигналдың сандық мәлімет жазылған толқындық формасы көрсетілген. Толқындық файл дыбыстың негізі екенін, ол қалай жұмыс істейтіні туралы ештеңе “білмейді”, сол себепті дыбыстық клипті сақтау үшін үлкен көлемдегі мәліметті есте сақтауы тиіс.
Басқа көп қолданылатын файл - тасымалдаушылар қатарына да музыкалық аспаптардың сандық интерфейс (MIDI) файлы жатады. . Midi файлдары музыкалық фрагменттерді сақтау үшін қолданылады. Бұл файлдарда дыбыс белгілі бір ноталардың қандай аспаптарда орындалып, қанша уақытқа созылатынын көрсететін берілімдер ретінде сақталады. MIDI файлдарының басты артықшылықтарының бірі файлдар салыстырмалы түрде үлкен емес болады. MIDI файлдары толқындық файлдарға жатады, оны метафайлдардың - . bmp файлдарына жату мысалдарымен түсіндіруге болады. Екі жағдайда да бірінші типті файлдар қандай берілімдерді көрсететінін анықтаса, екінші типті файлдар шығаратын құрылымға кететін ішкі берілімдерді көрсетеді.
Толқындық және MIDI файлдар тек қана дыбыс немесе музыканы сақтауы мүмкін. Видео мәліметті сақтауы үшін бірнеше форматтар тізімі жасалынған.
Олардың ішінде AVI және MREG файлдары көптеген видеофайлдармен қатар дыбыстық жолақтарды да сақтай алады. Сол себепті дыбыс суретпен бір уақытта шығып отырады. Видеофайл дегеніміз және ол қалай жұмыс істейді? Адамның миы бір бірінен онша айрықшаланбайтын суреттер тізбегін қозғалыс кейпінде қабылдайды. Осы суреттердің әр қайсысы кадр деп аталады. Әр келесі кадр алдыңғысынан кішкене айрықшаланады. Адам миы кадрлардың алмасуын қозғалыс ретінде қабылдау үшін, секундына 30 кадрды шығару жақсы болар еді. Одан да көп жиелікпен шығару сапаның айтарлықтай өсуіне алып келмейді, ал егер жиелікті төмендетсек, экран жарқырайтындай көрініс байқалады.
Егер файлда әрбір кадр экранның биттік матрицасындай (ал ол бірнеше килобайт) сақталса, онда өте үлкен дискілік жадыға қажеттілік туар еді: осындай қарапайым сызба бойынша компакт дискіге 72 секундты видеофильм жазуға болар еді. Сондықтан видеофильмдерді сақтау үшін видеоберілімдерді сығу техникасы қолданылады.
Егер сығудың әдістерінің күрделі математикасына терең қарамасақ, онда бар мағынасы келесіге тіреледі. Келесі кадр түскенде, аппаратура немесе сығу программасы “Бұл кадрды аз көлемде сақтауға бола ма, егер тек екеуінен айрықшаланатынды ғана жазсақ, әлде бәрін тұтас жазу керек пе?” деген сауал қояды. Көбінесе тек өзгеретін бөліктерді сақтау ыңғайлы. Мысалы, басқа камераны қосқанда өзгерістің бейнеленуі кадрдан көп орын алатын еді.
Мультимедианы сақтау әдістерінде үлкен жетістіктер алынуда. Тіпті қазір тұтас метражды кинофильмді стандартты CD-ROM да жазуға болады.
BEEP, MESSAGEBEEP дыбыстарын шығару процедуралары
Дыбысты басқарудың ең қарапайым процедурасы BEEP болып табылады. Оның параметрлері жоқ, егер компьютердің дыбыстық картасы болып, сандартты сигналы берілсе, Windows- тағы стандартты дыбыстық сигналды да шығарады. Егер дыбыстық карта болмай немесе стандартты сигнал орнатылмаса, дыбыс компьютердің динамикасы арқылы қарапайым щелчок ретінде шығарылады.
Жаңа приложение ашып, щелчок артында тек бір сөз жазатын перне енгіземіз:
BEEP;
Приложениені жіберіп, пернеде шертіп Windows-тың стандартты дыбысын ести аламыз.
MESSAGEBEEP күрделі процедура болып табылады. Ол
Function MESSAGEBEEP (uType:Word) :Boolean; ретінде анықталған uType параметрі шығарылатын дыбысты [sounds] реестрдің идентификатор ретінде көрсетеді. Онда Windows-тың әр түрлі жағдайларын шығарып салып отыратын дыбыстар жазылған “ Бақылау панеліндегі “ дыбыс атты приложение көмегімен қолданушы белгілі бір дыбыстарды өшіруге немесе керісінше орнатуға әбден болады.
uType келесі мағыналарға ие бола алады:
Дыбысты шақырғаннан кейін MESSAGEBEEP функциясы шақырылған функцияны басқаруы қайтарады және дыбысты асинхронды түрде шығарады.
Шығару кезінде приложение жұмыс істеуін тоқтатпауға да болады.
Дыбыс функциясында көрсетілгенді шығару мүмкін болмаса, үнсіздік бойынша орнатылған стандартты жүйелік дыбысты шығаруға іс жасалады. Егер бұл да орындамаса, онда стандартты сигнал динамик арқылы шығарылады.
Сәтті орындалған кезде бастапқы (яғни мөлдір ) мәні қайтып келеді.
Мультипликация құру
Енді бейнені қозғалысқа келтіруді қарастырайық. Delphi көмегімен мультфильмдердің бейнесін салу керек балсын. Ол үшін басқа құралдар қажет. Бейнеге жан беру сияқты кейбір қарапайым анимацияларды жасау керек. Программа құру барысында сұлбаға немесе шартты механизмдерге жан беріп бір біріне қатысты қозғалысын көрсеткің келеді.
Қарапайым мультипликация жасауды қарастырайық. Бірақ қндай да механизмнің бейнелерімен байланыс орнатпау үшін, барлығына түсінікті етіп: мысалы, адымдап бара жатқан адамның шартты бейнесін жасаймыз.
Ол үшін формаға Image компонентін, таймер Timer және Button батырмасын форманың төменгі жағына орналастырамыз. Форманың негізгі аумағы бейне салынатын Image компонентіне беріледі. Таймер кадрлардың ауысу темпін бере алады. Біздің жағдайымызда екі кадр болады. Таймердің Interval қасиетіне айтарлықтай үлкен мән, мысалы 500 береміз (себебі интервал миллисекундпен беріледі де, берген мәніміз сәйкесінше 0, 5 секундқа тең ) . Таймердің Enabled параметріне false мәнін береміз. Таймер батырма арқылы басқарылады. Компоненттерді орналастыру осымен аяқталады. Программа құруды бастаймыз. Оның Implementation бөлімі келесідей:
Const H=20; // қадам
YPos=120; // “жер”
Hmen=30; // тұлға биіктігі
Hhead=10;
Hhead2=Rhead div 2;
L=trunk (H*1. 41) ;
Var num:word=0;
Xpos:word=2*H;
Revers:integer=1;
Procedure Draw1;
Var Yhead:word;
Begin
With Form1. Image1. Canvas do
Begin
Case num of
0: begin
Yhead:=Ypos-H-Hmen;
MoveTo (Xpos-H, Ypos) ;
LineTo (Xpos, Ypos-H) ;
LineTo (Xpos+H, Ypos) ;
MoveTo (Xpos, Ypos-H) ;
LineTo (Xpos, Yhead) ;
MoveTo (Xpos+revers*H, Yhead-H) ;
LineTo (Xpos, Yhead+4) ;
Ellipse (Xpos+revers*H- Rhead2, Yhead- H-Rhead2, Xpos+revers*H+Rhead2, Yhead+H) ;
LineTo (Xpos+revers*H, Yhead+H) ;
Ellipse (Xpos+revers*H- Rhead2, Yhead+H-Rhead2, Xpos+revers*H+ Rhead2, Yhead+H+Rhead2) ;
Ellipse (Xpos-Rhead, Yhead, Xpos+Rhead, Yhead-2*Rhead) ;
Rectangle (Xpos-Rhead, Yhead-2*Rhead-1, Xpos+Rhead, Yhead-2*Rhead-4) ;
End;
1: begin
Yhead:=Ypos-L-Hmen;
MoveTo (Xpos, Ypos) ;
LineTo (Xpos, Yhead) ;
MoveTo (Xpos, Yhead+4) ;
LineTo (Xpos+revers*L, Yhead+4) ;
Ellipse(Xpos+revers*L-Rhead2, Yhead+4-Rhead2, Xpos+revers*L+Rhead2, Yhead+4+Rhead2) ;
Ellipse (Xpos-Rhead, Yhead, Xpos+Rhead, Yhead-2*Rhead) ;
Rectangle (Xpos-H div 2, Yhead-2*Rhead-1, Xpos+H div 2,
Yhead-2*Rhead-4) ;
End;
End;
End;
End;
Procedure TForm1. BRunClick (Sender: TObject) ;
Begin
Timer1. Enabled:= not Timer1. Enabled;
End;
Procedure TForm1. Timer1Timer (Sender: TObject) ;
Begin
Draw1;
If (Xpos>=Image1. Width-H) or (Xpos<=H)
Then revers:=-revers;
Xpos:=Xpos+revers*H;
Num:=1-num;
Draw1;
End;
Procedure TForm1. FormCreate (Sender: TObject) ;
Begin
With Image1. Canvas do
Begin
MoveTo(0, Ypos+3) ;
Pen. Width:=4;
Lineto (ClientWidth, Ypos+3) ;
Pen. Width:=1;
Pen. Mode:=pmNotXor;
End;
Draw1;
End;
Соңғы TForm1. FormCreate процедурасына анализ жүргізейік. Бұл процедура адам бейнесі жүретін “жер” сызық түрінде салынады. Одан кейін қаламға сәйкесінше pmNotXor режимін береміз. Соңында адам бейнесін салатын Draw1 процедурасы шақырылады.
TForm1. BRunClick процедурасы батырманың OnClick оқиғасын өңдеуші болып табылады. Батырманы шерту таймерді қосып немесе сөндіреді, қорытындысында адамның жүруі немесе тоқтатылуы жүзеге асырылады.
TForm1. Timer1Timer процедурасы OnTimer оқиғасының өңдеушісі. OnTimer оқиғасы Interval қасиеті қабылдаған мәнге сәйкес периодтылықты анықтайды. Бізге алғашқы кадрды өшіру және жаңаша салу қажет. Ең алдымен Draw1 процедурасы шақырылады. Алдындағы кадрды көрсеткен сәттен адам позициясы өзгермегендіктен бұл шақыруды алдындағы кадр салынған жерге салады. Бұдан алдындаы сурет өшіріледі. Содан соң Xpos адамының позициясы сарапталады. Егер позиция Image1 холсттың соңынан H қадамынан кіші шамадан кейін тұрса, айнымалы revers қарама- қарсы бейнесіне ауыстырылады. Ол қозғалыстың бағытын бейнелейді. Егер revers=1 болса, адам бейнесі оңға қарай адымдайды. Егер revers=-1 болса, адам бейнесі солға адымдайды. Содан кейін Xpos позициясы revers*H өлшеміне, яғни яғни оң немесе сол адымға өзгереді. Шығатын кадрдың номерін көрсететін (ол 0 немесе 1) num айнымалысы өзгертіледі. Нәтижесінде Draw1процедурасы шақырылады. Ол көрсетілген кадрды белгіленген позицияда салады.
Соңғы процедура Draw1 кадрді бейнелейді. Бұл айтарлықтай ұзын, бірақ ешқандай қиыншылығы жоқ. Num қабылдаған мәніне сәйкес бір немесе басқа кадр салынады. Сонымен қатар, суретте Xpos позициясы және revers қозғалысының бағыты ескеріледі.
Программаны орындап, батырманы басқанда біздің адамымыз формада орналасып, форманың шекарасына жеткенде бұрылып, кері бағытта жүреді. Батырманы екінші рет шерткенде ол тоқтайды.
Ал енді қарапайым мультипликацияны құруға қатысты мәселелерді талқылаймыз.
Олардың бірі - фон құру. Біздің адамымыз бос кеңістікте қозғалысқа келеді және біз бұған аса көңіл бөлмейміз. Программамызға қандай да бір фон қойып көрейік. Мысалы, TForm1. FormCreate процедурасындағы with және MoveTo операторы аралығына, қара төртбұрыштың суретін салатын операторларды орналастырамыз:
Brush. Color:=0;
Rectangle (90, 0, 200, 100) ;
Brush. Color:=clWhith;
Программаны орындағанда қара фонда қара адам ақ болады. Егер OpenDialog компонентін қолданып, TForm1. FormCreate процедурасына төмендегідей операторды енгізу барысында
If OpenDialog1. Execute
Then Image1. Picture. LoadFormFile (OpenDialog1. FileName) ;
Адам бейнесі әртүрлі түсті (мысалы, жер шары бейнесі) фонда адасып, нақты көрінбейді.
Бұндай жолдан шығудың өте қарапайым жолы - бір түсті фонды пайдалану болып табылады.
Delphi ортасында мультимедиялық программаар жасау үшін екі компоненттің қызметің пайдалануға болады:
-Animate- жай анимацияны шығауға мүмкіндік береді.
-MediaPlayer- аса қиын есептерді шешуге мүмкіндік береді.
Animate компоненті
Енді Delphi- де Windows- ң стандартты мультипликацияларын және AVI файлын ұйымдастыру тәсілдерін қарастырамыз. Мұндай мүмкіндіктерге Win32 қосымшасында орналасқан Animate компоненті көмегімен қол жеткізе аламыз.
Ол кадрлары AVI файлдарында орналасқан анимациямен жұмыс істеуге мүмкіндік береді. Негізгі міндетті шарт: AVI клипі алдын ала дайындалуы тиіс. TAnimate AVI клипін ресурстардан, файлдардан, Shell 32. dll кітапханасынан шығара алады.
Олар арқылы бейне шығару екі қасиеттің бірі: FileName және CommonAVI арқылы жүзеге асады. FileName қасиеті, атынан да белгілі программаны жобалау барысында файлдың атын беру арқылы шығара аламыз, ал Common AVI қасиеті Windows-ң стандартты мультипликациясын шығарады. Бұл қасиет келесідегідей хабарланады:
Type TCommon AVI = (aviNone, aviFindFolder, aviFindFile, aviFindComputer, aviCopyFiles, aviCopyFile, aviRecycleFile, aviEmptyRecycle, aviDeleteFile) ;
Property Common AVI: TCommon AVI;
Common AVI қасиетінің мәні:
Мысалы, Common AVI қасиеті aviCopyFile мәніне ие болса, ол стандартты бейнеге файл көшірмесін сәйкестендіреді. Сәйкесінше алғашқы сурет форма бетіне жедел түрде шығады. Animate компонентінің Repetition қасиетіне клиптің қайталану саны беріледі. Егер 0 мәніне ие болса, Stop әдісі орындалмайынша, қайталанып отырады. Егер Repetition қасиетіне 0-ден үлкен мән берсек, клиптің қайталану санын анықтайды.
Windows-тың стандартты клиптері әртүрлі өлшемге ие, сондықтан AutoSize қасиетіне True мәнін беру керек. Transparent қасиеті клиптің мөлдір немесе фондық түсті қолдануын анықтайды.
Клипті орындау алдында оны ашып, Open қасиетіне True мәнін беру керек. Бұдан клип компьютер жадында жүктеліп, шығаруға дайындық жүргізіледі.
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz