Тақырып: компьютерлік графика негіздері жоспар


Графикалық файлдардың форматтары



бет2/30
Дата08.09.2017
өлшемі4 Mb.
#30454
1   2   3   4   5   6   7   8   9   ...   30

3. Графикалық файлдардың форматтары
Растрлік бейнелердің форматтары:

        • .bmp – Windows – тің ең кең таралған растрлық бейне форматы. Бұл файлдар сығылмаған сондықтан көлемі үлкен болады.

Интернетте веб-беттерде растрлық 2- формат кең таралған.

  • GIF – бұл формат мөлдір пикселдерді және анимацияны сақтауға мүмкін береді. Бұл форматта файлдар ақпараттарды толық сақтап, сығылған.

  • JPEC – файлдың кеңейтілуі .jpg . Бұл формат файлдың сығылу дәрежесін яғни, ақпарат жоғалу процентін көрсетуге мүмкіндік береді. Жоғалу проценті неғұрлым көп болса, солғұрлым файлдың көлемі кіші болады. 50% жоғалумен фотосуреттер интернетте қанағаттаңарлық түрде болады.



Тақырып: DELPHI-ДІҢ ГРАФИКАЛЫҚ МҮМКІНДІКТЕРІ
Жоспар

  1. Холст

  2. Canvas объектісі

  3. Қарындаш және қылқалам

  4. Мәтінді шығару

  5. Графикалық примитивтерді салу әдістері

  6. Биттік бейнелер

  7. Мультипликация

  8. Базалық нүкте әдісі

  9. Суреттерді шығару. IMAGE компоненті

  10. Shape компоненті




  1. Холст

Windows қосымшалары экранға немесе принтерге графикалық бейнелерді шығаруды GDI (Grafics Devices Interface) функциялары көмегімен жүзеге асырады.

Қосымшаның құрылғы драйверімен әрекеттестігі GDI функциялары қолданатын бейненің контексті деп аталатын арнайы берілгендер құрылымы арқылы жүзеге асады. Бейненің контексті шығару құрылғысының негізгі сипаттамаларынан және сурет салу саймандарынан тұрады. Бейненің контекстіне келесі саймандар жатады: шрифт, қалам (перо), қылқалам (кисть).

Delphi қасиеті программистке экранға графикалық бейнелерді шығаратын программаларды жасауға мүмкіндік береді.

Delphi ортасында графикалық құралдарды қолдануды жеңілдету үшін арнайы класстар бар. Олар:

TCanvas – бейненің контексті үшін

TFont – шрифт үшін

Tpen – қалам үшін

Tbrush – қылқалам үшін

TPicture – бейнелер үшін контейнер

TGraphic – графикалық объектілер үшін базалық класс

TBitmap – растрлік бейне

TIcon – шартбелгі (значок)

TMetaFile – метафайл

Осы кластарға байланысты объектілер барлық көрінетін элементтер үшін автоматты түрде құрылып, программада - canvas, font, pen және brush қасиеттері арқылы жүзеге асырылады.

Tcanvas класы әртүрлі құралдармен – қалам, қылқалам, шрифт – сурет салынатын кенепті құруға мүмкіндік береді. Tcanvas класының объектілері барлық көрінетін компонентер үшін автоматты түрде құрылады.

Tfont класының көмегімен кез келген графикалық құрылғы (экран, принтер, плоттер, және т.б.) үшін шрифт объектісі құрылады.

Tpen класының көмегімен сызықтарды сызуға арналған қалам объектісі құрылады.

Tbrush класының объектілер тұйық фигуралардың ішін толтыру қызметін атқарады.


2. Canvas объектісі
Программа графиканы объектінің (форма немесе Image компоненті) бетіне шығарады. Объектінің бетіне Сanvas қасиеті сәйкес келеді. Программа графиканы шығаратын беттерге Canvas қасиеті сәйкес. Canvas қасиеті—Tcanvas типті объект болады. Бұл типтің әдістері графикалық примитивтерді (нүктелерді, сызықтарды, шеңберлерді, тіктөртбұрыштарды және т.б.) шығаруды қамтамасыз етеді, ал қасиеттері шығарылатын графикалық примитивтердің сипаттамаларын: сызықтардың түсін, қалыңдығын және стилін, боялатын аймақтардың түсін және құю түрін, мәтіндік ақпарат шығарғандағы қаріптің сипаттамаларын анықтауға мүмкіндік береді.

Графикалық примитивтерді салу әдістері Canvas қасиетін сурет салуға болатын кейбір абстрактты холст деп қарастырады (canvas "бет", "сурет салу үшін арналған холст" деп аударылады). Холст жеке нүктелерден – пикселдерден – тұрады. Пикселдің орны оның көлденең (X) және тік (Y) координаталарымен анықталады. Жоғарғы сол жақтағы пикселдің координаталары (0, 0). Координаталар жоғарыдан төменге және солдан оңға қарай өзгереді. Холсттың оң жақ төменгі координаталар мәні холст көлеміне байланысты болады.

Холсттың көлемін бейне шығарылатын аймақтық (image) Height және width қасиеттері немесе форманың ClientHeight және Clientwidth қасиеттері арқылы анықтауға болады.


3. Қарындаш және қылқалам
Суретші өз жұмысында қарындаш пен қылқаламды қолданады. Холст бетінде графикалық примитивтерді салуды қамтамасыз ететін әдістер де қарындаш пен қылқаламды қолданады.

Холстта графиканы шығару үшін қолданылатын қарындаш және қылқаламға Реn (қалам) және Brush (қылқалам) қасиеттері сәйкес. Олар сәйкесінше TРеn және Tbrush типті объектілер болады. Бұл объектілер қасиеттерінің мәндері шығарылатын графикалық элементтердің түрін анықтайды.



Қарындаш. Қарындаш геометриялық фигуралардың (тіктөртбұрыш, шеңбер, эллипс, доға және т.б.) нүктелерін, сызықтарын және контурларын сызу үшін қолданылады. TРеn объектісінің қасиеттері 1 кестеде келтірілген.

1 кесте. TРеn объектісінің қасиеттері



Қасиет

Сипаттамасы

Color

Сызықтың түсі

Width

Сызықтың қалыңдығы

Style

Сызықтың түрі

Mode

Көрсету режимі

Color қасиеті қалам мен салынған сызықтың түсін анықтайды. Келесі кестеде Color қасиетінің мәні ретінде пайдалануға болатын белгілі тұрақтылар берілген.

2 кесте. Color қасиетінің мәндері

Тұрақты__Түсі__Тұрақты__Түсі'>Тұрақты

Түсі

Тұрақты

Түсі

ClBlack

Қара

ClSilver

Күміс

ClMaroon

Каштан

ClRed

Қызыл

ClGreen

Жасыл

Clime

Салатты

ClOlive

Олив

ClBlue

Көк

ClNavy

Шымқай көк

ClFutshia

Ашық қызғылт

ClPurple

Қызғылт

ClAqua

Бирюзалы

ClTeal

Жасыл-көкшіл

ClWhite

Ақ

ClGray

Сұр








width қасиеті сызықтың қалыңдығын (пикселде) анықтайды. Мысалы, Canvas. Pen. width: =2 инструкциясы сызықтың қалыңдығы 2 пиксел деп орнатады.

style қасиеті сызықтың түрін (стилін) анықтайды. Сызық үздіксіз немесе штрихті бола алады. Пунктирлі сызықтың қалыңдығы 1 ден үлкен бола алмайды. Егер Pen.width қасиетінің мәні 1 ден үлкен болса, онда үздіксіз сызық салынады. 3 кестеде сызықтың стилін анықтайтын тұрақтылар келтірілген.

3 кесте. Style қасиетінің мәндері



Тұрақты__Сызық_түсі'>Тұрақты

Сызық түрі

psSolid

Үздіксіз сызық

psDash

Пунктирлі сызық, ұзын штрихтар

psDot

Пунктирлі сызық, қысқа штрихтар

psDashDot

Пунктирлі сызық, ұзын және қысқа штрихтар кезектеседі

psDashDotDot

Пунктирлі сызық, бір ұзын және екі қысқа штрихтар кезектеседі

psClear

Сызық көрінбейді (аймақтық шекарасын жасыру қажет болғанда қолданылады)

Mode қасиеті сызықтың нүктелер түсін холст нүктелер түсіне байланысты анықтайды. Үнсіз келісім бойынша сызық Pen.Color қасиетінің мәні болатын түспен сызылады.

Бірақ, программист фон түсіне байланысты сызық түсін өзгерте алады. Төменгі кестеде Рen.Mode қасиетінің мәні ретінде қолданылатын тұрақтылар сипатталған.


Тұрақты

Сызық түсі

MpBlack

Қара, Рen.Color қасиетінің мәнінен тәуелсіз

MpWhite

Ақ , Рen.Color қасиетінің мәнінен тәуелсіз

MpCopy

Сызық түсі Рen.Color қасиетінің мәніне тәуелді

MpNotCopy

Сызық түсі Рen.Color қасиетінің мәніне инверсиялы

MpNot

Сызық түсі бет нүктелерінің түсіне инверсиялы


Қылқалам. Қылқалам (canvas.Brush) — контурмен шектелген аймақтарды бояу үшін қолданылады. Объект болғандықтан, қылқаламның 4 кестеде көрсетілгендей қасиеттері бар.

4 кесте . TBrush (қылқалам) объектісінің қасиеттері




Қасиет

Сипаттамасы

Color

Style


Тұйық аймақты бояу (құю) түсі

Аймақты құю стилі (типі)


Аймақты құю стилін анықтайтын Brush. style қасиетінің мәндері 5 кестеде келтірілген.


5 кесте. style қасиетінің мәндері


Тұрақты

Аймақты құю түрі

bsSolid

Бірыңғай құю

bsClear

Аймақ боялмайды

bsHorizontal

Көлденең штриховка

bsVertical

Тік штриховка

bsFDiagonal

Диагональды штриховка, сызықтар солға көлбеу

bsBDiagonal

Диагональды штриховка, сызықтар оңға көлбеу

bsCross

Көлденң-тік штриховка, торлы

bsDiagCross

Диагональдыная штриховка, торлы


1 сурет. Аймақты құю стильдері




4. Мәтінді шығару
Графикалық объектінің бетіне мәтінді шығару үшін TextOut әдісі қолданылады:

Объект.Canvas.TextOut(x, у, мәтін)

мұндағы:

объект — бетіне мәтін шығарылатын объектінің атауы;

х, у — мәтін шығарылуы басталатын графикалық бет нүктесінің координатасы;

мәтін — мәні шығарылатын мәтінді анықтайтын айнымалы немесе символдық типты тұрақты

Мәтінді шығару үшін қолданылатын қаріп сәйкес canvas объектісінің Font қасиетінің мәнімен анықталады. Font қасиеті TFont типті объект болады. Мәтінді шығару үшін TextOut әдісі қолданатын қаріптің сипаттамаларын орнататын TFont объектісінің қасиеттері 6 кестеде келтірілген.
6 кесте. Tfont объектісінің қасиеттері


Қасиет

Сипаттамасы

Name

Қолданылатын қаріп. Мәні ретінде қаріптің атауын көрсету қажет, мысалы, Arial

Size

Пунктпен (points) анықталатын қаріптің өлшемі. Пункт— полиграфияда қолданылатын қаріп өлшемін өлшеу бірлігі. Бір пункт 1/72 дюймге тең

Style

Символдардың жазылу стилі. Болуы мүмкін: нормальды, қарайтылған, курсив, асты сызылған, сызылған. Стиль келесі тұрақтылармен анықталады:

fsBold (қарайтылған)

fsltalic (курсив)

fsUnderline (асты сызылған)

fsStrikeOut (сызылған).

style қасиеті керекті стильдерді бірге қолдануға мүмкіндік беретін жиын болады. Мысалы, "қарайтылған курсив" стилін орнату үшін программа инструкциясы келесідей болады:

Объект. Canvas . Font : = [fsBold, fs Italic]


Color

Символдар түсі. Мәні ретінде Tcolor типті тұрақтыны қолдануға болады.

Ескерту!


Мәтінді шығару аймағы қылқаламның ағымдағы түсімен боялады. Сондықтан, мәтінді шығару алдында Brush.Color қасиетіне bsClear немесе мәтін шығарылатын беттің түсіне сәйкес қылқалам түсінің мәнін меншіктеу қажет.

Textout әдісімен мәтін шығарылған соң шығару нұсқағышы (қарындаш) мәтінді шығару аймағының жоғарғы оң жақ бұрышына орналасады.

Мәтіннің жоғарғы оң жақ бұрышының координаталарын анықтау үшін PenPos қасиетін қолдану керек.

Программаның келесі фрагменті TextOut функциясының қолданылуын көрсетеді.

With Form1.Сanvas do

Begin


Font.Name:=’Tahoma’;

Font.Size:=20;

Font.Style:=[fsItalic,fsBold];

TextOut(10,10’Borland Delphi 7’);

End;
5. Графикалық примитивтерді салу әдістері

Суретші өз жұмысында қарындаш пен қылқаламды қолданады. Холст бетінде графикалық примитивтерді салуды қамтамасыз ететін әдістер де қарындаш пен қылқаламды қолданады.

Холстта графиканы шығару үшін қолданылатын қарындаш және қылқаламға Реn (қалам) және Brush (қылқалам) қасиеттері сәйкес. Олар сәйкесінше TРеn және Tbrush типті объектілер болады. Бұл объектілер қасиеттерінің мәндері шығарылатын графикалық элементтердің түрін анықтайды.

Қарындаш. Қарындаш геометриялық фигуралардың (тіктөртбұрыш, шеңбер, эллипс, доға және т.б.) нүктелерін, сызықтарын және контурларын сызу үшін қолданылады. TРеn объектісінің қасиеттері 1 кестеде келтірілгенқалыңдығы және стилі) Реn объектісі қасиеттерінің мәндерімен анықталады.

Сынық сызық. polyline әдісі сынық сызық сызу үшін қолданылады. Параметр ретінде әдіс TPoint типті массивті алады. Массивтің әр бір элементі х және у өрістері сынық төбелерінің координаталарын сақтайтын жазба болады.

Polyline әдісін тұйық контурларды сызу үшін қолдануға болады. Ол үшін массивтің бірінші және соңғы элементтеріне бір нүктенің координаталары сақталуы тиіс.



Қисық, сызық. PolyBezier әдісі қисық сызық сызады. Әдістің параметрі ретінде Tpoint типті массив алынады. Массивтің әрбір 3*k+1 элементінің х және у өрістері қисық сызық өтетін нүктелердің координаталарын, ал 3*k+2 және 3*(k+1) элементтерінің х және у өрістері қисық сызықтың түрін анықтайтын бақылау нүктелердің координаталарын сақтайтын жазба болады.

Қисық сызық шекарасының түсі, қалыңдығы және стилі Реn қасиетінің мәндерімен анықталады.



Шеңбер және эллипс. Ellipse әдісі параметрлер мәндері байланысты эллипс немесе шеңбер салады. Әдісті шақыру нұсқасының жалпы түрі келесідей болады:

Объект.Canvas.Ellipse(x1,y1, х2,у2)

мұндағы:

объект — сызу жүргізілетін бет объектісінің (компоненттің) атауы;

x1, y1, х2, у2 — эллипс немесе шеңберді шектейтін тіктөртбұрыштың немесе шаршының координаталары.

Эллипс сызығының түсі, қалыңдығы және стилі Реn объектісі қасиеттерінің мәндерімен, ал эллипс ішіндегі аймақты бояу түсі мен стилі — шығару жүргізілетін беттің (canvas) Brush қасиетінің мәндерімен анықталады.



2 сурет. Arc әдісінің доғаны эллипс (шеңбер) бөлігі деп анықтайтын параметрлерінің мәндері

Доға. Доға салу үшін Arc әдісі қолданылады. Әдісті шақыру нұсқасының жалпы түрі келесідей болады:

Объект.Canvas.Arc(x1,y1,х2,у2,х3,у3,х4,у4)

мұндағы:

x1, y1, х2, у2 — сызылатын доға бөлігін анықтайтын эллипстің (шеңбердің) параметрлері;

х3, у3 — доғаның бастапқы нүктесін анықтайтын параметрлер;

х4, у4 — доғаның соңғы нүктесін анықтайтын параметрлер.

Бастапқы (соңғы) нүкте — бұл эллипс шекарасымен эллипс ортасынан координаталары х3 және у3 (х4 және у4) нүктесіне жүргізілген түзумен қиылысу нүктесі. Доға бастапқы нүктеден бастап соңғы нүктеге дейін сағат тілі бағытына қарсы сызылады (2 сурет).

Доға сызылатын сызықтың түсі, қалыңдығы және стилі доға сызылатын беттің Реn қасиетінің мәндерімен анықталады.



Тіктөртбұрыш. Тіктөртбұрыш Rectangle әдісі көмегімен салынады. Әдісті шақыру нұсқасының жалпы түрі келесідей болады:

Объект.Canvas.Rectangle(x1, y1,x2, y2)

мұндағы:

объект — сызу жүргізілетін бет объектісінің (компоненттің) атауы;

x1, y1 және х2, у2 — тіктөртбұрыштың сол жақ жоғарғы және оң жақ төменгі төбелерінің координаталары.

RoundRec әдісі де тіктөртбұрыш салады, тек оның бұрыштары домаланған. RoundRec әдісін шақыру нұсқасы:

Объект.Canvas.RoundRec(x1,y1,х2, у2, х3, у3)

мұндағы:


x1, y1, х2, у2 – бұрыштары домаланған тіктөртбұрышты шектейтін тіктөртбұрыштың сол жақ жоғарғы және оң жақ төменгі төбелерінің координаталары;

х3 және у3 — төрттен бір бөлігі бұрыштары домаланған төртбұрышты сызу үшін қолданылатын эллипстің көлемі (3 сурет).



3 сурет. Бұрыштары домаланған тіктөртбұрыш сызатын RoundRec әдісінің параметрлері

Контурдың түсі, қалыңдығы және стилі Реn объектісі қасиеттерінің мәндерімен, ал тіктөртбұрыш ішіндегі аймақты бояу түсі мен стилі — шығару жүргізілетін беттің (canvas) Brush қасиетінің мәндерімен анықталады.

Тіктөртбұрыш салатын тағы да екі әдіс бар: FillRect әдісі іші боялған тіктөртбұрыш салады, ал FrameRect әдісі — тек контурды салады. Осы әдістердің әр қайсысының тек бір параметрі бар —TRect типті құрылым. TRect құрылымының өрістері тікбұрышты аймақтың координаталарынан тұрады, олар Rect функциясының көмегімен толтырылуы мүмкін.

Көпбұрыш. Polygon әдісі көпбұрыш сызады. Әдістің параметрі ретінде Tpoint типті массив алынады. Массивтің әрбір элементі х және у өрістері көпбұрыш төбелерінің координаталарын сақтайтын жазба болады. Polygon әдісі біртіндеп координаталары массивте сақталған бірінші нүктені екінші нүктемен, екінші нүктені үшінші нүктемен және т.с.с. түзу сызықпен қосады. Сонан соң соңғы және бірінші нүкте қосылады.

Көпбұрыш шекарасының түсі, қалыңдығы және стилі Реn қасиетінің мәндерімен, ал көпбұрыш ішіндегі аймақты бояу түсі мен стилі — шығару жүргізілетін беттің (canvas) Brush қасиетінің мәндерімен анықталады.



Сектор. pie әдісі эллипса немесе дөңгелек секторын салады. Әдісті шақыру нұсқасының жалпы түрі келесідей болады:

Объект. Canvas.Pie(x1,y1,x2,y2,х3,у3,х4,у4)

мұндағы:

x1, y1, х2, у2 — сектор бөлігі болатын эллипсті (шеңберді) анықтайтын параметрлер;

х3, у3, х4, у4 — сектордың шекарасы болатын түзулер ұштарының координаталарын анықтайтын параметрлер.

Түзулердің бастапқы нүктелері эллипс (шеңбер) ортасымен бір. Сектор координаталары (х3, у3) нүктесімен анықталған түзуден бастап координаталары (х4, у4) нүктесімен анықталған түзуге дейін сағат тілі бағытына қарсы салынады.



Нүкте. Программа графика шығара алатын бет Canvas объектісіне сәйкес. TColor типті екіөлшемді массив болатын pixels қасиеті графикалық беттің әрбір нүктесінің түсі туралы ақпаратты сақтайды. Используя қасиет Pixels қасиетін қолданып графикалық беттің кез келген нүктесі үшін керекті түсті орнатуға болады. Мысалы, келесі нұсқа

Form1.Canvas.Pixels[10,10]:=clRed

форма бетінің нүктесін қызыл түске бояйды.

pixels массивінің өлшемі графикалық беттің өлшемімен анықталады.. Форманың графикалық бетінің (жұмыс аймағы, клиенттік деп те атайды) өлшемі Clientwidth және ClientHeight қасиеттерінің мәндерімен, ал image графикалық беттің көлемі —width және Height қасиеттерінің мәндерімен анықталады. Форманың жұмыс аймағының сол жақ жоғарғы нүктесіне pixels [0,0] элементі, ал оң жақ төменгі нүктесіне – Pixels[Ciientwidth - 1, ClientHeight - 1] элементі сәйкес болады.

Pixels қасиетін функциялардың графиктерін салу үшін қолдануға болады.

6. Биттік бейнелер

Графикамен жұмыс істегенде TBitMap (биттік бейне) типті объектілерді қолданған ыңғайлы. Биттік бейне компьютер жадында орналасады да көрінбейтін графикалық бет болады. Биттік бейнені (суретті) жеңіл және жылдам форманың немесе image шығару аймағының бетіне шығаруға болады. Сондықтан, биттік бейнелерді әдетте аз көлемді бейнелерді, мысалы, командалық батырмалар суреттерін, сақтау үшін қолданады.

Биттік бейнеге керекті суретті жүктеу үшін LoadFromFile әдісін қолдануға болады. Әдістің параметрі ретінде керекті сурет сақталған BMP-файлының атауын көрсету қажет.

Биттік бейнені (суретті) форма немесе иллюстрацияны шығару бетіне шығару үшін Draw әдісін беттің сәйкес қасиетіне қолдануға болады. Мысалы, келесі нұсқа

Image1.Canvas.Draw(x,у, bm)

bm биттік бейненің суреттін image1 компонентінің бетіне шығарады (х және у параметрлері компонент бетіндегі суреттің сол жақ жоғарғы бұрышының координаталарын анықтайды).



Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   30




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет