Графика
в
стиле
VII
Александр СОЛОВЕЙ
Наверное, все графические редакторы и даже вьюверы обладают фильтрами для размывания контуров,
преобразования цветов и пр. Я предлагаю изучить, как все зто работает при использовании Visual
Basic 6. Общее замечание: абсолютно все эффекты сводятся к разложению изображения на точки
и последующему их видоизменению.
Я
ля н а ч а л а со зд а д и м н о ф о р м е д в а
гр а ф и ч е с к и х н е п е р е к р ы в а ю щ и х
друг д р уга поля P i c l и P ic 2 и кноп-
ку Cmd, п о н аж ати и н а к о то р у ю б у -
дут вы полняться п р е о б р а зо в о н и я .
1
.
Понадобится семь целочисленных пе-
ременных
( in t e g e r ) —
три для разде-
ления цвета на канолы, две для коор-
динат точек и еще две для определения
оттенка серого и для получения конеч-
ного цвета. Переменные типа
in t e g e r
в VB можно объявлять, добавляя к ним
знак
%,
а типа
L o n g —
s:
D im C l% , С2% , С3% , Х%, Y%, G re y% ,
C o lo r s , x S iz e % , y S iz e %
Запрограммируем код преобразова-
ния в коде кнопки. Очистим второе тро-
фическое поле и с помощью двух циклов
пройдемся по его точкам, розделяя цве-
та но базовые составляющие, преобра-
зовав их в серый цвет. После этого вы-
ведем результат во второе поле:
P r i v a t e S u b Cmd C l i c k ( )
P ic l. S c a le M o d e = P i x e l
P i c 2 . S c a le M o d e = P i x e l
P i c 2 . C l s
x S iz e = I n t ( S c a l e x (P i c l . P i c t u r e .
W i d t h , v b H i m e t r i c , v b P i x e l s ) )
y S iz e = I n t ( S c a l e Y ( P i c l . P i c t u r e .
H e ig h t , v b H im e t r ic , v b P i x e l s ) )
F o r x = 0 T o x S iz e
F o r Y = 0 T o y S iz e
c o l o r = P i c l . P o i n t (X , Y )
C l = c o l o r A n d 2 5 5
C2 = ( C o lo r \ 2 5 6 ) A n d 2 5 5
C 3 = ( C o lo r \ 6 5 5 3 6 ) A n d 2 5 5
G r e y = I n t ( ( C l + C2 + C 3 ) / 3 )
C o lo r = R G B ( G r e y , G r e y , G r e y )
P ic 2 . P S e t ( X , Y ) , C o lo r
N e x t Y
D o E v e n tS
N e x t X
E n d S u b
x S iz e
и
y S iz e
служат для того что-
бы изображение обрабатывалось по-
пиксельно, а не «потвипово».
Инструкция
D o E v e n ts
осуществляет-
ся затем, чтобы компьютер не «виснул»
во время выполнения долгих операций,
а отвечал на действия пользователя.
Немного ускорить процесс мы можем,
оброботывая не все символы, о только
кождый десятый, например, — но результате это явно не ска^
Рисунок (эффект № 3)
Рисунок (эффект № 4)
Эффект №2. Преобразование
в чернв-беяое
Этот
эф ф ект п о д о б е н п р о ш л о м у ,
за
и скл ю ч е н и е м то го , что н а м п о н а д о б и т -
ся лиш ь
два
цвето,
в
за в и с и м о с ти о т н а -
сы щ е н н о сти о тте н ка се р о го :
D im С1% , С2% , С'3%,
Х%,
Y%, C o lo r s ,
x S iz e % , y S iz e %
C o n e t L C = 127
P r i v a t e S u b Cm d C l i c k ()
P ic l. S c a le M o d e = P i x e l
P i c 2 . S c a le M o d e = P i x e l
P i c 2 . C l s
x S iz e = i n t ( S c a l e x ( P i c l . P i c t u r e .
W id t h , v b H im e t r ic , v b P i x e l s ) )
y S iz e = I n t ( S c a l e Y ( P i c l . P i c t u r e .
H e ig h t , v b H im e t r ic , v b P i x e l s ) )
F o r X = 0 T o x S iz e
F o r Y = 0 T o y S iz e
C o lo r = P i c l . P O i n t ( X , Y )
C l = C o lo r A n d 255
C2 = ( C o lo r \ 2 5 6 ) A n d 2 5 5
C 3 = ( C o lo r \ 6 5 5 3 6 ) A n d 2 5 5
I f ( C l + C2 + C3 ) / 3 > L C T h e n C o lo r
= v b W h ite E ls e C o lo r = v b B la c k
P ic 2 . P S e t (X , Y ) , C o lo r
N e x t Y
'D o E v e n t s
N e x t X
E n d S u b
К о н ста н та l c о п р е д е л я е т п о р о г я р -
кости для п р е о б р о з о в а н и я , м о ж е т п р и -
н и м ать зн о чен и я 0 - 2 5 5 (а б со л ю тн о б е -
лый — о б с о л ю т н о черны й)
Эффект №Э. Инверсия
К о д это го эф ф екта очен ь п охож , р а з -
ве что н е п онадоби тся п ерем ен н ая G re y .
И м е н н о п о то м у м о ж н о э ко н о м и ть п о -
м ять и п р и сво и ть п е р е м е н н ы м С 1 , С2,
С З тип B y t e (в п р е д ы д ущ е м сл у ч а е э т о -
го нельзя б ы л о дел оть, т.к. мы скл ад ы -
вали п ерем ен ны е). К р о м е то го , те п е р ь
для и н в е р си и в м е сто за п и си 2 5 5 -Ц в е т
М О Ж Н О И С П О Л Ь З О В О Т Ь
N o t Ц в е т.
D im C l A s B y t e , C2 A s B y t e , C3 A s B y t e
D im X % , Y%, C o l o r s , x S iz e % , Y S iz e %
P r i v a t e S u b C m d _ C lic k ()
P ic l. S c a le M o d e = P i x e l
P i c 2 . S c a le M o d e = P i x e l
P i c 2 . C l s
x S iz e = I n t ( S c a l e X ( P i c l . P i c t u r e .
W id t h , v b H im e t r ic , v b P i x e l s ) )
Y S iz e = I n t ( S c a l e Y ( P i c l . P i c t u r e .
H e ig h t , v b H im e t r ic , v b P i x e l s ) )
F o r X = 0 T o x S iz e
зывается. Для
это го п о сл е объ я влен и я цикла F o r н а п и ш и те
F o r Y = 0 Т о Y S iz e
S t e p 10 (F o r X = 0 Т о P i c l . W i d t h S t e p 10).
C o lo r = P i c l . P o in t ( X , Y )
№ 3 /3 3 0 17янворя-24 января 2005
предыдущая страница 39 Мой Компьютер 2005 03 читать онлайн следующая страница 41 Мой Компьютер 2005 03 читать онлайн Домой Выключить/включить текст