ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

Π‘Π°ΠΉΡ‚ учитСля ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ

Π€Π΅Π²Ρ€Π°Π»ΡŒ 2019

ΠŸΠ½Π’Ρ‚Π‘Ρ€Π§Ρ‚ΠŸΡ‚Π‘Π±Π’Ρ
123
45678910
11121314151617
18192021222324
25262728

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

Lazarus. Π£Ρ€ΠΎΠΊ β„– 3.

Π£Ρ€ΠΎΠΊ 3. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TImage.

Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ Π’Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈ основными свойствами ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Lazarus Image, создадитС Π΄Π²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с Π΅Π³ΠΎ использованиСм.

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (TImage) обСспСчиваСт Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΉ, прСдставлСнных Π² bmp–форматС (Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для отобраТСния ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JPG, Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ JPEG – ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя модуля Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ uses).

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ рисунок ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Image ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π² срСдС Lazarus, Ρ‚Π°ΠΊ ΠΈ Π²ΠΎ врСмя выполнСния. Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ рассмотрим ΠΎΠ±Π° случая.

Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ рисунка Π² ΠΏΠΎΠ»Π΅ Image Π½Π° этапС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ интСрфСйса прилоТСния Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ свойству Picture Ρ„Π°ΠΉΠ», содСрТащий рисунок.

Для присвоСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»Π° с рисунком Π²ΠΎ врСмя выполнСния прилоТСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ LoadFromFile(), ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Picture.

НапримСр, для Π²Ρ‹Π²ΠΎΠ΄Π° Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ imgIxample Ρ„Π°ΠΉΠ»Π° рисунка myPicture.jpg Π²ΠΎ врСмя выполнСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:

Π—Π°Π΄Π°Π½ΠΈΠ΅ 7

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ «Вставка рисунка ΠΈΠ· Ρ„Π°ΠΉΠ»Π°Β», Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π»Π΅Π²Ρ‹ΠΉ рисунок Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ послС Π΅Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π° ΠΏΡ€Π°Π²Ρ‹ΠΉ – ΠΏΠΎ Ρ‰Π΅Π»Ρ‡ΠΊΡƒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ ВывСсти рисунок.

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ для выполнСния задания:

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

Π₯ΠΎΠ΄ выполнСния

РазмСститС Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Π΄Π²Π° изобраТСния Image (Π²ΠΊΠ»Π°Π΄ΠΊΠ° Additional), Π΄Π²Π΅ надписи (Label) ΠΈ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ (Button).

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства AutoSize для изобраТСния ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ True, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ поля изобраТСния автоматичСски измСнялись, ΠΏΠΎΠ΄ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π»ΠΈΡΡŒ ΠΏΠΎΠ΄ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ рисунка.

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

procedure TForm1.Button2Click(Sender: TObject);

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹:

procedure TForm1.Button2Click(Sender: TObject);

Для управлСния Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свойство Visible.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹:

procedure TForm1.Button3Click(Sender: TObject);

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

Π—Π°Π΄Π°Π½ΠΈΠ΅ 8

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π°Π΄ рисунком, располоТСнным Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ Ρ„ΠΎΡ€ΠΌΡ‹, выполняСт дСйствия, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ….

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

Π₯ΠΎΠ΄ выполнСния

Напомню. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события, ΠΈΠ΄ΡƒΡ‰ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ Π½Π° элСмСнтС управлСния.

procedure TForm1.btnVverh_VlevoClick(Sender: TObject);

procedure TForm1.btnVverh_VpravoClick(Sender: TObject);

procedure TForm1.btnCentrClick(Sender: TObject);

image1.top:=(form1.height-image1.height) div 2;

image1.left:=(form1.width-image1.width) div 2;

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ Π±Ρ‹Π»Π° ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° 9 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌborschool8.ru

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ Π½Π° Ρ‚Π΅ΠΌΡƒ: » Delphi Pascal. ΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, соотвСтствуСт свойство Canvas. Π Π°Π·ΠΌΠ΅Ρ€ холста ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ свойствам.» β€” Вранскрипт:

2 ΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, соотвСтствуСт свойство Canvas. Π Π°Π·ΠΌΠ΅Ρ€ холста ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ свойствам Height ΠΈ width области ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ (image) ΠΈΠ»ΠΈ ΠΊ свойствам Ρ„ΠΎΡ€ΠΌΡ‹: ClientHeight=348 ΠΈ Clientwidth=536.

3 ΠŸΠΎΠ»ΠΎΡ‚Π½ΠΎ состоит ΠΈΠ· Ρ‚ΠΎΡ‡Π΅ΠΊ (пиксСлов), каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ свои ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΈ Ρ†Π²Π΅Ρ‚. 0,0 Π₯ Π£

4 Font – опрСдСляСт ΡˆΡ€ΠΈΡ„Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π²Ρ‹Π²ΠΎΠ΄Π° тСкста Π½Π° экран Pen – опрСдСляСт Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π° ΠΊΠ°Π½Π²Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒΡΡ Π»ΠΈΠ½ΠΈΠΈ ΠΈ гСомСтричСскиС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Brush – опрСдСляСт Ρ†Π²Π΅Ρ‚ ΠΈ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† кисти, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ графичСскиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ Ρ„ΠΎΠ½ PenPos –опрСдСляСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π°

5 Brush.Color – Π·Π°Π΄Π°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚, Brush.Style – Π·Π°Π΄Π°Π΅Ρ‚ шаблон, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния: bsSolid – сплошная Π·Π°Π»ΠΈΠ²ΠΊΠ° bsClear – пустая Π·Π°Π»ΠΈΠ²ΠΊΠ° bsBDiagonal – Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ (Π½ΠΈΠΆΠ½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ – ΠΏΡ€Π°Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ) bsFDiagonal – Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ (Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΏΡ€Π°Π²Ρ‹ΠΉ – Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ) bsCross – прямая Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠ° bsDiagCross – диагональная Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠ° bsHorizontal – Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ bsVertical – Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ

7 Π¦Π²Π΅Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Ρ‚ΡŒ, ΡƒΠΊΠ°Π·Π°Π² числовыС значСния Π² RGB(ΠΊ,Π·,с) НапримСр, Form.Canvas.Brush.Color:=RGB(88,87,104)

8 ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° Π’ΠΈΠΏ заполнСния (Π·Π°Π»ΠΈΠ²ΠΊΠΈ) области bsSolid Бплошная Π·Π°Π»ΠΈΠ²ΠΊΠ° bsClear ΠžΠ±Π»Π°ΡΡ‚ΡŒ Π½Π΅ Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ bsHorizontal Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΡˆΡ‚Ρ€ΠΈΡ…ΠΎΠ²ΠΊΠ° bsVertical Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ ΡˆΡ‚Ρ€ΠΈΡ…ΠΎΠ²ΠΊΠ° bsFDiagonal Π”ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΡˆΡ‚Ρ€ΠΈΡ…ΠΎΠ²ΠΊΠ° с Π½Π°ΠΊΠ»ΠΎΠ½ΠΎΠΌ Π»ΠΈΠ½ΠΈΠΉ Π²ΠΏΠ΅Ρ€Π΅Π΄ bsBDiagonal Π”ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΡˆΡ‚Ρ€ΠΈΡ…ΠΎΠ²ΠΊΠ° с Π½Π°ΠΊΠ»ΠΎΠ½ΠΎΠΌ Π»ΠΈΠ½ΠΈΠΉ Π½Π°Π·Π°Π΄ bsCross Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ-Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ ΡˆΡ‚Ρ€ΠΈΡ…ΠΎΠ²ΠΊΠ°, Π² ΠΊΠ»Π΅Ρ‚ΠΊΡƒ bsDiagCross Π”ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΡˆΡ‚Ρ€ΠΈΡ…ΠΎΠ²ΠΊΠ°, Π² ΠΊΠ»Π΅Ρ‚ΠΊΡƒ

10 Pixels(x,y) – рисуСт Ρ‚ΠΎΡ‡ΠΊΡƒ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Ρ…, Ρƒ НапримСр, инструкция Form1.Canvas.Pixels[10,10]:=clRed ΠΎΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΡƒ повСрхности Ρ„ΠΎΡ€ΠΌΡ‹ Π² красный Ρ†Π²Π΅Ρ‚.

13 Π€ΠΈΠ³ΡƒΡ€Π° эллипса (ΠΊΡ€ΡƒΠ³Π°) оказываСтся вписанной Π² ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ (ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚) с Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ – Π»Π΅Π²ΠΎΠΉ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ x1, y1 ΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ Π½ΠΈΠΆΠ½Π΅ΠΉ x2, y2.

14 Arc(x1,y1,Ρ…2,Ρƒ2,Ρ…3,Ρƒ3,Ρ…4,Ρƒ 4), Π³Π΄Π΅ x1, y1, Ρ…2, Ρƒ2 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ эллипс (ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ), Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся вычСрчиваСмая Π΄ΡƒΠ³Π°; Ρ…3, Ρƒ3 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π΄ΡƒΠ³ΠΈ; П Ρ…4, Ρƒ4 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π΄ΡƒΠ³ΠΈ.

20 Name Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΡˆΡ€ΠΈΡ„Ρ‚. Π’ качСствС значСния слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡˆΡ€ΠΈΡ„Ρ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Arial Size Π Π°Π·ΠΌΠ΅Ρ€ ΡˆΡ€ΠΈΡ„Ρ‚Π° Π² ΠΏΡƒΠ½ΠΊΡ‚Π°Ρ… (points). ΠŸΡƒΠ½ΠΊΡ‚ это Π΅Π΄ΠΈΠ½ΠΈΡ†Π° измСрСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΡˆΡ€ΠΈΡ„Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π² ΠΏΠΎΠ»ΠΈΠ³Ρ€Π°Ρ„ΠΈΠΈ. Один ΠΏΡƒΠ½ΠΊΡ‚ Ρ€Π°Π²Π΅Π½ 1/72 дюйма Style ΡΡ‚ΠΈΠ»ΡŒ начСртания символов. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ: Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ, ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΌ, курсивным, ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ΠΌ, ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ΠΌ. Π‘Ρ‚ΠΈΠ»ΡŒ задаСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… констант: fsBold (ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΉ), fsltalic (курсив), f sUnderline (ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ΠΉ), f sStrikeOut (ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ΠΉ).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π˜Π»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΡΠ°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C++ Builder

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ

НаиболСС просто вывСсти ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ, которая находится Π² Ρ„Π°ΠΉΠ»Π΅ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .bmp, .jpg ΠΈΠ»ΠΈ .ico, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° image, Π·Π½Π°Ρ‡ΠΎΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ находится Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Additional ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (рис. 3.9). ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ свойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π». 3.5.

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ
Рис. 3.9. Π—Π½Π°Ρ‡ΠΎΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Image

Π’Π°Π±Π»ΠΈΡ†Π° 3.5. Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° image.

Π‘Π²ΠΎΠΉΡΡ‚Π²ΠΎΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
PictureΠ˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ, которая отобраТаСтся Π² ΠΏΠΎΠ»Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°
Width, HeightΠ Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Если Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° мСньшС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойств AutoSize, Strech ΠΈ Proportional Ρ€Π°Π²Π½ΠΎ false, Ρ‚ΠΎ отобраТаСтся Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ
ProportionalΠŸΡ€ΠΈΠ·Π½Π°ΠΊ автоматичСского ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π±Π΅Π· искаТСния. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства AutoSize Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ false
StrechΠŸΡ€ΠΈΠ·Π½Π°ΠΊ автоматичСского ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ (сТатия ΠΈΠ»ΠΈ растяТСния) ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π² соотвСтствии с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Если Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π΅ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»Π΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ искаТСна
AutoSizeΠŸΡ€ΠΈΠ·Π½Π°ΠΊ автоматичСского измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² соотвСтствии с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ
CenterΠŸΡ€ΠΈΠ·Π½Π°ΠΊ опрСдСляСт располоТСниС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π² ΠΏΠΎΠ»Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ, Ссли ΡˆΠΈΡ€ΠΈΠ½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ мСньшС ΡˆΠΈΡ€ΠΈΠ½Ρ‹ поля ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства Ρ€Π°Π²Π½ΠΎ false, Ρ‚ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΈΠΆΠ°Ρ‚Π° ΠΊ ΠΏΡ€Π°Π²ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Ссли true – Ρ‚ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° располагаСтся ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ
VisibleΠŸΡ€ΠΈΠ·Π½Π°ΠΊ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, отобраТаСтся Π»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ, соотвСтствСнно, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ Π½Π° повСрхности Ρ„ΠΎΡ€ΠΌΡ‹
CanvasΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° Π² ΠΏΠΎΠ»Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° image, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ прилоТСния, Ρ‚Π°ΠΊ ΠΈ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ задаСтся установкой значСния свойства Picture ΠΏΡƒΡ‚Π΅ΠΌ Π²Ρ‹Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»Π° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π² стандартном Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ становится доступным Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‰Π΅Π»Ρ‡ΠΊΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Load ΠΎΠΊΠ½Π° Picture Editor, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, появляСтся Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‰Π΅Π»Ρ‡ΠΊΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ с трСмя Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π² строкС свойства picture (рис. 3.10).

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ
Рис. 3.10. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π² строкС Picture Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ стрСмя Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ, Π·Π°Ρ‚Π΅ΠΌ Π² ΠΎΠΊΠ½Π΅ Picture Editor – Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Load

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π£Ρ‡Π΅Π±Π½ΠΈΠΊΠΈ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

ВсС для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅Π³ΠΎ программиста

МСню сайта

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ, это процСсс создания ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.
Π’ ΡƒΠ·ΠΊΠΎΠΌ смыслС (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) ΠΏΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ понимаСтся написаниС инструкций β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ языкС программирования (часто ΠΏΠΎ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΌΡƒΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ β€” ΠΏΠ»Π°Π½Ρƒ, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ). БоотвСтствСнно, люди, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ этим Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ программистами (Π½Π° ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΆΠ°Ρ€Π³ΠΎΠ½Π΅ β€” ΠΊΠΎΠ΄Π΅Ρ€Π°ΠΌΠΈ), Π° Ρ‚Π΅, ΠΊΡ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ β€” алгоритмистами, спСциалистами ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области, ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°ΠΌΠΈ.
Π’ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ смыслС ΠΏΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ вСсь спСктр Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, связанный с созданиСм ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ΠΌ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ состоянии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π­Π’Πœ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π΅Π½ соврСмСнный Ρ‚Π΅Ρ€ΠΌΠΈΠ½ β€” «программная инТСнСрия» (Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Π°Ρ‡Π΅ «инТСнСрия ПО»). Бюда входят Π°Π½Π°Π»ΠΈΠ· ΠΈ постановка Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, построСниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° структур Π΄Π°Π½Π½Ρ‹Ρ…, написаниС тСкстов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ тСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (испытания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹), Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, настройка (ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅), Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ сопровоТдСниС.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

Image

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ image (рис. 2.10) обСспСчиваСт Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΉ, прСдставлСнных Π² bmp-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ (Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для отобраТСния ΠΈΠ»Π»ΡŽΡΡ‚ Ρ€Π°Ρ†ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JPG, Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ jpeg β€” ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя модуля Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ uses). Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° image ΠΏΡ€ΠΈ Π²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π». 2.11. Image

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

Рис. 2.10. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Image

Π’Π°Π±Π»ΠΈΡ†Π° 2.11. Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° image

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ, которая отобраТаСтся Π² ΠΏΠΎΠ»Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°

Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Если Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠ΅Π½ΡŒΡˆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ, ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойств AutoSize, Strech И Proportional Ρ€Π°Π²Π½ΠΎ False,Ρ‚ΠΎ отобраТаСтся Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ автоматичСского ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π±Π΅Π· искаТСния. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства AutoSizeΠ΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ False

ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ автоматичСского ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ (сТатия ΠΈΠ»ΠΈ растяТСния) ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π² соотвСтствии с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Если Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π΅ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»Π΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ искаТСна

ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ автоматичСского измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² соотвСтствии с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ опрСдСляСт располоТСниС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π²ΠΏΠΎΠ»Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ, Ссли ΡˆΠΈΡ€ΠΈΠ½Π°ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ мСньшС ΡˆΠΈΡ€ΠΈΠ½Ρ‹ поля ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. ЕслизначСниС свойства Ρ€Π°Π²Π½ΠΎ False, Ρ‚ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΈΠΆΠ°Ρ‚Π° ΠΊ ΠΏΡ€Π°Π²ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Ссли True β€”Ρ‚ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° располагаСтся ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ΡΡ Π»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ, соотвСтствСнно,ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ Π½Π° повСрхности Ρ„ΠΎΡ€ΠΌΡ‹

ΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π“Π»Π°Π²Π° 5. ΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΠΈ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ пиксСлСй

НавСрноС, это самая ваТная Π³Π»Π°Π²Π° Π²ΠΎ всСй ΠΊΠ½ΠΈΠ³Π΅. Она посвящСна повСрхностям, Π° повСрхности β€” Π³Π»Π°Π²Π½ΠΎΠ΅, для Ρ‡Π΅Π³ΠΎ создавалась Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° DirectDraw. ΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΠΈ DirectDraw ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ изобраТСния, ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ…, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΊΠ°Π΄Ρ€Ρ‹ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π° экран. ВсС интСрфСйсы DirectDraw Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с повСрхностями. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ DirectDrawPalette ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠ°Π»ΠΈΡ‚Ρ€ΠΎΠ²Ρ‹Ρ… повСрхностСй; интСрфСйс DirectDrawClipper опрСдСляСт, какая Ρ‡Π°ΡΡ‚ΡŒ (ΠΈΠ»ΠΈ части) повСрхности Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π±Π»ΠΈΡ‚Ρ‚ΠΈΠ½Π³Π΅; Π½Π°ΠΊΠΎΠ½Π΅Ρ†, сам интСрфСйс DirectDraw обСспСчиваСт основныС срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с повСрхностями.

ΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΠΈ

ΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒΡŽ называСтся интСрфСйс, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ DirectDrawSurface выполняСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с этой ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ β€” Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅, ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ освобоТдСниС. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ повСрхностСй позволяСт Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ практичСски любоС графичСскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ слСдуСт Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ доступ ΠΊ памяти повСрхности Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ интСрфСйсом DirectDrawSurface; Π²Ρ‹ Π½Π΅ смоТСтС ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ повСрхности Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ способом. Если ΡƒΡ‡Π΅ΡΡ‚ΡŒ это ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ, становится ясно, Ρ‡Ρ‚ΠΎ интСрфСйс DirectDrawSurface Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ быстрым ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π΄Π΅Π»ΠΎ обстоит ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ DirectDrawSurface обСспСчиваСт прямой доступ ΠΊ памяти повСрхности. Он прСдоставляСт самыС быстрыС ΠΈ Π³ΠΈΠ±ΠΊΠΈΠ΅ срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с повСрхностями, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ всС, Ρ‡Ρ‚ΠΎ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π΅ замСдляСтся Π½ΠΈΠΊΠ°ΠΊΠΈΠΌΠΈ интСрфСйсами-посрСдниками. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π΄Π°Π½Π½Ρ‹Π΅ повСрхности всСгда ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ, нСзависимо ΠΎΡ‚ способа ΠΈΡ… хранСния Π² видСоустройствС.

НСсмотря Π½Π° всС прСимущСства прямого Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ доступа, ΠΏΡ€ΠΈ манипуляциях с повСрхностями программист Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ повСрхности, Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π§Π°Ρ‰Π΅ всСго такая Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° заставляСт DirectDraw Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ основныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Windows. Если Π²Ρ‹ Π·Π°Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° «зависнСт» ΠΏΡ€ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ повСрхности, скорСС всСго, придСтся ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ Lock() ΠΈ Unlock() нСльзя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°ΠΌΠΈ.

НовыС возмоТности DirectX 5

DirectX 5 позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ DirectDraw, Ρ‡Ρ‚ΠΎ Π²ΠΎ врСмя Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ повСрхностСй ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· остановки ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Windows. DirectDraw постараСтся Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Π­Ρ‚Π° новая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ обСспСчиваСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Lock() интСрфСйса DirectDrawSurface3, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π»Π°Π³ DDLOCK_NOSYSLOCK. Π‘ΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ DirectDraw смоТСт Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π±Π΅Π· остановки систСмы, Π½ΠΈΠ³Π΄Π΅ Π½Π΅ описаны, поэтому Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ваша ΠΏΡ€ΠΎΡΡŒΠ±Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½Π°. Если это Π½Π΅ удастся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ блокируСтся стандартным способом.

Для прямого доступа ΠΊ повСрхности Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΅Π΅ пиксСлСй. Π­Ρ‚ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ опрСдСляСт способ хранСния Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пиксСля. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ видСоустройства ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡ‚ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠ°. Π€ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ пиксСлСй особСнно сильно Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ для повСрхностСй High Color (16-Π±ΠΈΡ‚Π½Ρ‹Ρ…).

ΠŸΡ€ΠΈ прямом доступС ΠΊ памяти повСрхности Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π½Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ шага повСрхности (surface stride). Π¨Π°Π³ΠΎΠΌ называСтся объСм памяти, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для прСдставлСния Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ строки пиксСлСй. Π‘ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ взгляда каТСтся, Ρ‡Ρ‚ΠΎ шаг повСрхности совпадаСт с Π΅Π΅ ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ это Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π¨Π°Π³ повСрхности, ΠΊΠ°ΠΊ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ пиксСлСй, зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ видСоустройства.

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ рассмотрим ΠΈ Ρ€Π΅ΡˆΠΈΠΌ всС эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ΠœΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ с изучСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² пиксСлСй, Π° Π·Π°Ρ‚Π΅ΠΌ посмотрим, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ повСрхностСй, нСзависимо ΠΎΡ‚ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° пиксСлСй. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ BMP-Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΡ€ΠΈ этом основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒΡΡ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ BMP-Ρ„Π°ΠΉΠ»Π° Π½Π° ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ. Π“Π»Π°Π²Ρƒ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° BmpView, прСдназначСнная для просмотра графичСских Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° BMP (Ссли вас интСрСсуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ процСсс Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ растровых ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° повСрхности, ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π°Π·Π΄Π΅Π»Ρƒ этой Π³Π»Π°Π²Ρ‹).

Π“Π»ΡƒΠ±ΠΈΠ½Π° пиксСлСй ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, сколько Ρ€Π°Π·Π½Ρ‹Ρ… Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСно ΠΎΠ΄Π½ΠΈΠΌ пиксСлСм повСрхности. Π“Π»ΡƒΠ±ΠΈΠ½Π° пиксСлСй Ρ‚Π°ΠΊΠΆΠ΅ влияСт Π½Π° объСм памяти, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ для прСдставлСния повСрхности. Π’ DirectDraw прСдусмотрСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π³Π»ΡƒΠ±ΠΈΠ½ пиксСлСй: 8-Π±ΠΈΡ‚Π½Ρ‹Ρ… (ΠΏΠ°Π»ΠΈΡ‚Ρ€ΠΎΠ²Ρ‹Ρ…), 16-Π±ΠΈΡ‚Π½Ρ‹Ρ… (High Color), 24-Π±ΠΈΡ‚Π½Ρ‹Ρ… ΠΈ 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… (ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ True Color).

Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивного доступа ΠΊ памяти повСрхности Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ Π΅Π΅ пиксСлСй. Если Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΅Π΅ памяти, Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π΄ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ пиксСля, ΠΊΠ°ΠΊ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ ΠΈ ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. НачнСм с 8-Π±ΠΈΡ‚Π½Ρ‹Ρ… повСрхностСй.

НавСрноС, с 8-Π±ΠΈΡ‚Π½Ρ‹ΠΌΠΈ, ΠΈΠ»ΠΈ ΠΏΠ°Π»ΠΈΡ‚Ρ€ΠΎΠ²Ρ‹ΠΌΠΈ, повСрхностями Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅ всСго, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ пиксСль Π² Π½ΠΈΡ… прСдставляСтся ΠΎΠ΄Π½ΠΈΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ. Как Π²Ρ‹ вскорС ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, это особСнно ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ BMP-Ρ„Π°ΠΉΠ»ΠΎΠ². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ пиксСль 8-Π±ΠΈΡ‚Π½ΠΎΠΉ повСрхности просто соотвСтствуСт цСлочислСнному индСксу ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹, Π° Π½Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, это достоинство отчасти компСнсируСтся Ρ…Π»ΠΎΠΏΠΎΡ‚Π°ΠΌΠΈ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°Π»ΠΈΡ‚Ρ€ΠΎΠΉ.

ПиксСли High Color (16-Π±ΠΈΡ‚Π½Ρ‹Π΅) выглядят нСсколько слоТнСС, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ часто ΠΎΠΏΡ€Π°Π²Π΄Ρ‹Π²Π°Π΅Ρ‚ усилия. ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° использования, характСрная для бСспалитровых повСрхностСй, сочСтаСтся Π² Π½ΠΈΡ… с ΡƒΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹ΠΌ расходом памяти (ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с пиксСлями Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ True Color). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ пиксСль High Color содСрТит Π½Π΅ индСкс, Π° Ρ†Π²Π΅Ρ‚. Π¦Π²Π΅Ρ‚Π° Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Π΅Ρ… Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ…: красной, Π·Π΅Π»Π΅Π½ΠΎΠΉ ΠΈ синСй (RGB).

ПиксСли True Color дСлятся Π½Π° Π΄Π²Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ (24- ΠΈ 32-Π±ΠΈΡ‚Π½Ρ‹Π΅), Π½ΠΎ Π² ΠΎΠ±ΠΎΠΈΡ… случаях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 24 Π±ΠΈΡ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… RGB. Π›ΠΈΡˆΠ½ΠΈΠ΅ 8 Π±ΠΈΡ‚ 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… пиксСлСй ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для хранСния Π°Π»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π»Π° (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ прозрачности пиксСля). К соТалСнию, Π² DirectDraw всС Π΅Ρ‰Π΅ отсутствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ эмуляции Π°Π»ΡŒΡ„Π°-налоТСния, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ лишниС Π±ΠΈΡ‚Ρ‹ 32-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ пиксСля часто ΠΏΡ€ΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π²ΠΏΡƒΡΡ‚ΡƒΡŽ.

РазумССтся, достоинства повСрхностСй True Color отчасти ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ΡΡ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ расходом памяти. Π‘ΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ поясняСт рис. 5.1, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ наглядно ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ всСх Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² пиксСлСй.

Π₯отя рис. 5.1 Π½Π΅ содСрТит Π½ΠΈΠΊΠ°ΠΊΠΈΡ… особых ΠΎΡ‚ΠΊΡ€ΠΎΠ²Π΅Π½ΠΈΠΉ, ΠΎΠ½ позволяСт ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ прСдставлСниС пиксСля Π² памяти зависит ΠΎΡ‚ Π΅Π³ΠΎ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΅Π³ΠΎ общая структура Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… рисунках Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°.

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

Рис. 5.1. Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ памяти ΠΎΡ‚ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ пиксСлСй

Π¨Π°Π³ повСрхности Π¨Π°Π³ΠΎΠΌ повСрхности называСтся объСм памяти (Π² Π±Π°ΠΉΡ‚Π°Ρ…), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ для прСдставлСния Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ строки пиксСлСй. Π¨Π°Π³ повСрхности ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с объСмом памяти, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ для хранСния Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ строки пиксСлСй, Π½ΠΎ часто оказываСтся большС.

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° возьмСм 8-Π±ΠΈΡ‚Π½ΡƒΡŽ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ΄ΠΈΠ½ пиксСль Π² Ρ‚Π°ΠΊΠΈΡ… повСрхностях прСдставляСтся ΠΎΠ΄Π½ΠΈΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ вычислСния). ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, вашС видСоустройство Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ (для DirectDraw) прСдставлСнии ΡˆΠΈΡ€ΠΈΠ½Π° повСрхности Π±Ρ‹Π»Π° Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π° ΠΏΠΎ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„ΠΎΠ² (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π±Ρ‹Π»Π° ΠΊΡ€Π°Ρ‚Π½Π° 4 Π±Π°ΠΉΡ‚Π°ΠΌ). Π’ этом случаС ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ с ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ Π² 10 пиксСлСй Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π² 12 Π±Π°ΠΉΡ‚. Если ΠΌΡ‹ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅ΠΌ эту ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π°Π·Π½Π°Ρ‡ΠΈΠΌ значСния пиксСлСй, прСдполагая, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠ° ΠΎΠ΄Π½ΠΎΠΉ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ строки Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 10 Π±Π°ΠΉΡ‚, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ получится ΠΏΠ΅Ρ€Π΅ΠΊΠΎΡˆΠ΅Π½Π½Ρ‹ΠΌ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Ссли вмСсто ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΏΡ€ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠ΅ повСрхностСй Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ шаг. ΠŸΡ€ΠΈ этом нСзависимо ΠΎΡ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ повСрхностСй, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ DirectDraw, вычислСниС адрСсов пиксСлСй Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Битуация поясняСтся Π½Π° рис. 5.2.

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

Рис. 5.2. НСбольшая 8-битная ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ значСниями шага ΠΈ ΡˆΠΈΡ€ΠΈΠ½Ρ‹

Для бСспалитровых повСрхностСй шаг ΠΈ ΡˆΠΈΡ€ΠΈΠ½Π° повСрхности ΡƒΠΆΠ΅ Π½Π΅ связаны ΠΌΠ΅ΠΆΠ΄Ρƒ собой, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ пиксСль Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ нСсколько Π±Π°ΠΉΡ‚. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, возьмСм ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ High Color (16-Π±ΠΈΡ‚Π½ΡƒΡŽ). ΠŸΡ€ΠΈ ΡˆΠΈΡ€ΠΈΠ½Π΅ повСрхности Π² 5 пиксСлСй каТдая строка Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ 10 Π±Π°ΠΉΡ‚. Если видСоустройство Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ фактичСская ΡˆΠΈΡ€ΠΈΠ½Π° повСрхности Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π»Π°ΡΡŒ ΠΏΠΎ Π³Ρ€Π°Π½ΠΈΡ†Π΅ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π°, DirectDraw создаСт ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ Π² 12 Π±Π°ΠΉΡ‚ (см. рис. 5.3).

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ссли Π±Ρ‹ ΡˆΠΈΡ€ΠΈΠ½Π° 16-Π±ΠΈΡ‚Π½ΠΎΠΉ повСрхности Π½Π° рис. 5.3 Π±Ρ‹Π»Π° Ρ€Π°Π²Π½Π° 6 пиксСлям вмСсто 5, шаг повСрхности остался Π±Ρ‹ ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС остаСтся свободноС мСсто для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ пиксСля.

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

Рис. 5.3. НСбольшая 16-битная ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ значСниями шага ΠΈ ΡˆΠΈΡ€ΠΈΠ½Ρ‹

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π΅Ρ‰Π΅ Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π½Π° этот Ρ€Π°Π· с 24-Π±ΠΈΡ‚Π½Ρ‹ΠΌΠΈ повСрхностями. ΠŸΡ€ΠΈ 12-Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, использованной Π²Ρ‹ΡˆΠ΅, ΠΈ 24-Π±ΠΈΡ‚Π½ΠΎΠΉ Π³Π»ΡƒΠ±ΠΈΠ½Π΅ пиксСля Π² ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ 4 пиксСля ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ памяти. Но Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π² 5 пиксСлСй? Π¨Π°Π³ увСличится Π΄ΠΎ 16 Π±Π°ΠΉΡ‚, Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Π±ΡƒΠ΄Π΅Ρ‚ напрасно ΠΏΡ€ΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚. ОбС ситуации ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π½Π° рис. 5.4.

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС, я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎ Π³Ρ€Π°Π½ΠΈΡ†Π΅ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„ΠΎΠ² Π½Π΅ слСдуСт ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ слишком Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ. Π’ соотвСтствии с ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ DirectDraw Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ лишь Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ для пСрСмСщСния ΠΌΠ΅ΠΆΠ΄Ρƒ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ строками пиксСлСй Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ шаг повСрхности, Π° Π½Π΅ Π΅Π΅ ΡˆΠΈΡ€ΠΈΠ½Ρƒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ лишь ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΏΠΎΡ‡Π΅ΠΌΡƒ шаг повСрхности Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°ΠΆΠ΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

Рис. 5.4. Π”Π²Π΅ нСбольшиС 24-Π±ΠΈΡ‚Π½Ρ‹Π΅ повСрхности

Π¨Π°Π³ повСрхности Π²Π°ΠΆΠ΅Π½ Π΅Ρ‰Π΅ ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ прямом доступС ΠΊ памяти повСрхности Π²Π°ΠΌ приходится Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ строками пиксСлСй. ПолноС сохранСниС всСй повСрхности Π½Π° дискС ΠΈ повторная Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΅Π΅ Π² Π²ΠΈΠ΄Π΅ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° β€” нСудачная ΠΌΡ‹ΡΠ»ΡŒ. Π’Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ сработаСт лишь Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠΎΠΌ ΠΈ видСоустройством, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ сохранСнии повСрхности.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ хранятся Π² памяти ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ пиксСли. ΠœΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ для 8-Π±ΠΈΡ‚Π½Ρ‹Ρ… повСрхностСй Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пиксСля являСтся индСксом Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅. Π’ этом случаС ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ заполняСтся Π½Π΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π° ссылками Π½Π° Π½ΠΈΡ…. ΠŸΠ°Π»ΠΈΡ‚Ρ€Π° прСдставляСт собой список Ρ†Π²Π΅Ρ‚ΠΎΠ², Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ элСмСнтС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ хранятся RGB-ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚.

Π’ 16-Π±ΠΈΡ‚Π½Ρ‹Ρ… пиксСлях хранится нСпосрСдствСнно цвСтовая информация. 16-Π±ΠΈΡ‚Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ пиксСлСй дСлятся Π½Π° Π΄Π²Π΅ основныС разновидности: Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ каТдая RGB-ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ прСдставлСна 5 Π±ΠΈΡ‚Π°ΠΌΠΈ (ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΉΡΡ Π±ΠΈΡ‚ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ), Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ 5 Π±ΠΈΡ‚Π°ΠΌΠΈ прСдставлСны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ красная ΠΈ синяя ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅, Π° для Π·Π΅Π»Π΅Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 6 Π±ΠΈΡ‚. Для этих Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ условныС обозначСния 5-5-5 ΠΈ 5-6-5 соотвСтствСнно.

Π’ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ 5-5-5 каТдая цвСтовая ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΎΡ‚ 0 Π΄ΠΎ 31. Π§Π΅ΠΌ большС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ, Ρ‚Π΅ΠΌ интСнсивнСС ΠΎΠ½Π° проявляСтся Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌ Ρ†Π²Π΅Ρ‚Π΅. Π€ΠΎΡ€ΠΌΠ°Ρ‚ 5-6-5 Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ зСлСная ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° 0–63. Π­Ρ‚ΠΈ Π΄Π²Π° Π²ΠΈΠ΄Π° 16-Π±ΠΈΡ‚Π½Ρ‹Ρ… пиксСлСй ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π½Π° рис. 5.5.

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

Рис. 5.5. Π”Π²Π° распространСнных 16-Π±ΠΈΡ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° пиксСлСй

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваш ΠΊΠΎΠ΄ Π±Ρ‹Π» ΠΏΠΎ-настоящСму пСрСносимым, Π²Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ пиксСлСй ΠΈΠ»ΠΈ класс Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ². Π’Π΅Π΄ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° DirectDraw Π±Ρ‹Π»Π° создана ΠΈΠΌΠ΅Π½Π½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΉ интСрфСйс для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ устройствами. Π›ΡŽΠ±ΠΎΠ΅ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ΅ Π΄ΠΎΠΏΡƒΡ‰Π΅Π½ΠΈΠ΅ Π² вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ сниТаСт ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» прилоТСния. ПозднСС Π² этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ рассмотрим ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ с Π»ΡŽΠ±Ρ‹ΠΌ 16-Π±ΠΈΡ‚Π½Ρ‹ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ пиксСлСй.

24- ΠΈ 32-Π±ΠΈΡ‚Π½Ρ‹Π΅ пиксСли, ΠΊΠ°ΠΊ ΠΈ 16-Π±ΠΈΡ‚Π½Ρ‹Π΅, дСлятся Π½Π° Π΄Π²Π΅ разновидности: RGB ΠΈ BGR. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с пиксСлями True Color Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свСдСния ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΎΡ‚ DirectDraw, ΠΈ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… бСзусловных ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Напоминаю, Ρ‡Ρ‚ΠΎ Π°Π»ΡŒΡ„Π°-Π±Π°ΠΉΡ‚ Π² 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… пиксСлях часто остаСтся Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. Если ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π°Π»ΡŒΡ„Π°-Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ 24- ΠΈ 32-Π±ΠΈΡ‚Π½Ρ‹ΠΌ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ. Π Π°Π±ΠΎΡ‚Π° Π² 24-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ экономит ΠΏΠ°ΠΌΡΡ‚ΡŒ.

ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

Рис. 5.6. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ пиксСлСй True Color

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ пиксСлСй

БвСдСния ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ пиксСлСй повСрхности ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ GetPixelFormat() интСрфСйса DirectDrawSurface, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ структура DDPIXELFORMAT. Ѐункция GetPixelFormat() примСняСтся Ρ‚Π°ΠΊ:

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° DDPIXELFORMAT содСрТит Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ поля, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… для нас интСрСс:

ПолС dwRGBBitCount ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ пиксСлСй повСрхности. Π’Ρ€ΠΈ ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ поля ΡΠ²Π»ΡΡŽΡ‚ΡΡ масками, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΌΠΈ, Π² ΠΊΠ°ΠΊΠΈΡ… Π±ΠΈΡ‚Π°Ρ… пиксСля хранятся Π΄Π°Π½Π½Ρ‹Π΅ красной, Π·Π΅Π»Π΅Π½ΠΎΠΉ ΠΈ синСй ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ…. НапримСр, Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ значСния ΠΏΠΎΠ»Π΅ΠΉ для повСрхности High Color Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° 5-6-5 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π». 5.1.

Π’Ρ€ΠΈ маски ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Π² ΠΊΠ°ΠΊΠΈΡ… позициях пиксСля хранятся Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ…. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этих масок ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ пиксСля нСзависимо ΠΎΡ‚ Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°.

Π’Π°Π±Π»ΠΈΡ†Π° 5.1. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° для 16-Π±ΠΈΡ‚Π½Ρ‹Ρ… пиксСлСй

ΠŸΠΎΠ»Π΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
dwRGBBitCount16(Π½Π΅Π²Π°ΠΆΠ½ΠΎ)
dwRBitMask634881111100000000000
dwGBitMask20160000011111100000
dwBBitMask310000000000011111

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π΅ маски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для вычислСния Π΄Π²ΡƒΡ… Π²Π΅Π»ΠΈΡ‡ΠΈΠ½: Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ пиксСля (Π±ΠΈΡ‚, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ начинаСтся ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ, ΠΈΠ»ΠΈ стартовый Π±ΠΈΡ‚), ΠΈ количСства Π±ΠΈΡ‚ для прСдставлСния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ. ЗначСния этих Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π». 5.2. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ стартовый Π±ΠΈΡ‚ отсчитываСтся справа Π½Π°Π»Π΅Π²ΠΎ (ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°Ρ… находятся слСва).

РассчитанныС значСния ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с пиксСлями. Π‘Ρ‚Π°Ρ€Ρ‚ΠΎΠ²Ρ‹ΠΉ Π±ΠΈΡ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π½Π° сколько ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ, Π° количСство β€” сколько Π±ΠΈΡ‚ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅.

Π’Π°Π±Π»ΠΈΡ†Π° 5.2. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° для 16-Π±ΠΈΡ‚Π½Ρ‹Ρ… пиксСлСй

ΠŸΠΎΠ»Π΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π‘Ρ‚Π°Ρ€Ρ‚ΠΎΠ²Ρ‹ΠΉ Π±ΠΈΡ‚ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π±ΠΈΡ‚
dwRBitMask634881111100000000000115
dwGBitMask2016000001111110000056
dwBBitMask31000000000001111105

Однако Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΌΡ‹ рассматривали лишь 16-Π±ΠΈΡ‚Π½Ρ‹Π΅ пиксСли. 8-Π±ΠΈΡ‚Π½Ρ‹Π΅ пиксСли нас Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΠ΄Ρ‚ΠΈ дальшС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ пиксСлям Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° True Color. Π’ Ρ‚Π°Π±Π». 5.3 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° пиксСлСй (Π² Ρ‚ΠΎΠΌ числС Π΄Π²Π΅ вычислСнныС Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ) для Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ³ΠΎ 24-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°.

Π’Π°Π±Π»ΠΈΡ†Π° 5.3. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° для 24-Π±ΠΈΡ‚Π½Ρ‹Ρ… пиксСлСй

ΠŸΠΎΠ»Π΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π‘Ρ‚Π°Ρ€Ρ‚ΠΎΠ²Ρ‹ΠΉ Π±ΠΈΡ‚ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π±ΠΈΡ‚
dwRBitMask16711680111111110000000000000000168
dwGBitMask6528000000000111111111000000088
dwBBitMask25500000000000000001111111108

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ β€” Π΄Π°Π½Π½Ρ‹Π΅ Π² этих Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… относятся ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Π΅. Они прСдставлСны лишь для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, Π° Π½Π΅ ΠΊΠ°ΠΊ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰Π΅Π΅ руководство ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌ пиксСлСй.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° пиксСлСй Π² классС DirectDrawWin

ΠŸΡ€ΠΈ описании класса DirectDrawWin Π² Π³Π»Π°Π²Π΅ 3 ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ функция DirectDrawWin::ActivateDisplayMode() послС Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠ°, Π½ΠΎ Π΄ΠΎ создания Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… повСрхностСй прилоТСния, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ StorePixelFormatData(). ОписаниС этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Ρ‹Π»ΠΎ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½ΠΎ Π΄ΠΎ настоящСго ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°.

Ѐункция StorePixelFormatData() присваиваСт значСния ΡˆΠ΅ΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ класса DirectDrawWin Π² соотвСтствии с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ пиксСлСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠ°; эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ стартовый Π±ΠΈΡ‚ ΠΈ количСство Π±ΠΈΡ‚ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ пиксСля. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ манипуляциях с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ повСрхности. Ѐункция StorePixelFormatData() выглядит Ρ‚Π°ΠΊ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *