Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

До розд. 2.3) Використання двовимірних масивів для збереження та обробки зображень



Спочатку нагадаємо Вам, що мова Visual Basic має у своєму розпорядженні графічні методи, що застосовуються до таких об'єктів, як Форма і Графічне вікно.

За допомогою графічних методів, а також іншими способами зазначені об'єкти можна заповнювати самими різними зображеннями. Крім того, на цих об'єктах можна «друкувати» — застосовувати до них метод Print.

Графічні методи і метод Print створюють на формі чи у графічному вікні множину пікселів — кольорових плям. Піксель настільки малий, що сприймається людським оком як точка, тобто об'єкт, що не має довжини і ширини. (Розмір пікселя, тобто його довжину чи ширину, для стислості теж називають пікселем.)

Коли Ви починаєте проектувати інтерфейс Вашого додатка, екранна форма і всі об'єкти на ній за замовчуванням виміряються у твіпах. (Нагадаємо Вам, що твіп — це дуже маленька величина, вона в 15 разів менше, ніж піксель.) Практично, вимір у твіпах буває корисним тільки при друці зображення на принтері, — при малюванні на екрані використовуються, як правило, не твіпи, а пікселі.

Якщо у Вашій програмі Ви збираєтеся використовувати графічні методи, доцільно від твіпів перейти до пікселів — провести масштабування об'єкта, на якому Ви будете малювати. Зробити це можна двома способами:

1. На етапі розробки інтерфейсу потрібно встановити значення властивості ScaleMode об'єкта рівним Pixel (за замовчуванням воно дорівнює Twip), і відповідні значення властивостей ScaleWidth і ScaleHeight. Наприклад, 150 і 150. (У твіпах розміри були б рівні 2250 і 2250).

2. Відразу після початку роботи Вашої програми повинен спрацювати записаний у ній оператор виду: Ім’яОб’єкma.Scale (x l, y l ) - (x 2, y 2 ). У цьому операторі міститься графічний метод Scale, що застосовується до об'єкта з даним ім'ям.

Другий спосіб кращий, тому що він, на додаток до зміни масштабу, дозволяє малювати картинки в зручній для Вас системі координат. Якщо ж координати x l = 0 і y l = 0 Вас влаштовують, можете обмежитися першим способом.

А тепер розглянемо питання про те, як можна використовувати поняття двовимірного масиву для збереження зображення в програмі і для обробки (перетворення) цього зображення.

Приклад 2.10. Нехай у лівому верхньому куті графічного вікна за допомогою методів Print і Line Вам вдалося створити красиве зображення букви «Б» на фоні розфарбованого прямокутника. І нехай Ви хочете побудувати ще 3 зображення, симетричні першому зображенню (мал. 2.6).

Мал. 2.6. Вхідне (у лівому верхньому куті) і симетричні йому зображення

Допустимо, графічне вікно має розміри 150 x 150 пікселів. А зображення в лівому верхньому куті цього вікна — 50 x 70 пікселів.

Кожен піксель зображення характеризується двома координатами в системі координат графічного вікна і кольором — цілим числом типу Long. Цю інформацію можна зберігати в програмі у вигляді двовимірного масиву Color(50, 70) As Long. Неважко зміркувати, що для збереження даних у цьому масиві буде відведена пам'ять у 14 кілобайт (нагадаємо, що одне довге ціле число (типу Long) займає 4 байти пам'яті).

Замість одного масиву типу Long можна скористатися трьома масивами типу Byte — у них можна зберігати значення трьох аргументів функції для кожного пікселя (аргументів Red, Green і Blue). У цьому випадку ми заощаджуємо пам'ять — для всіх трьох масивів буде потрібно всього 10.5 кілобайт.

Розглянемо програму, за допомогою якої колір кожного пікселя вихідного зображення буде поміщений у 3 зазначених масиви, після чого будуть побудовані інші картинки.

Для зчитування кольору кожного пікселя вихідного зображення використовується новий для Вас графічний метод Point (x, y). Подібно до функції, він повертає значення — колір точки з координатами x, y.

Для перетворення довгого цілого числа (кольору пікселя) у 3 числа типу Byte (в аргументи функції RGB, що повертає цей колір), можна використовувати наступну загальну процедуру:

Код 2.16.

Вся інша частина програми — у наступному коді:

Код 2.17.

Усі необхідні коментарі до цієї програми — у коді самої програми.

Hові поняття:





Дата публикования: 2014-12-28; Прочитано: 218 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...