Corel SCRIPT облегчает работы в PHOTO-PAINT |
Одно из самых мощных средств автоматизации часто выполняемых
работ в Corel PHOTO-PAINT - это его встроенный BASIC-подобный язык программирования.
Он значительно повышает скорость работ, особенно если это сложная и длинная последовательность
действий по обработке исходного изображения. Самое простое его применение - записать
последовательность выполняемых действий и потом "проигрывать" их на
других изображениях. Делается это на вкладке Recorder (которая открывается
по [Ctrl]+[F3]). На ней есть панель управления "магнитофоном команд"
- нажмите кнопку Record, и PHOTO-PAINT начнет запись ваших действий. После того
как все будет сделано - нажмите кнопку Stop. Теперь загрузите новое изображение,
нажмите кнопку Play, и PHOTO-PAINT повторит все то же самое, но уже с новым графическим
файлом. Записанные команды можно сохранить в виде текстового файла, чтобы
затем модифицировать его в Corel SCRIPT-EDITOR - это прекрасный способ быстро
изучить Corel SCRIPT.Именно таким образом был создан, а затем модифицирован скрипт,
который автоматизирует создание анимированной (движущейся в одном из восьми направлений)
бесшовной подложки для Web-страниц. Алгоритм его работы достаточно прост.
Из исходного изображения создается плашка из девяти его дублей, "сшитых"
друг с другом в виде матрицы 3 х 3, которая затем размножается во всех кадрах
вновь созданного анимированного изображения. Потом на каждом из кадров она пропорционально
смещается в заданном направлении, чтобы обеспечить иллюзию движения. Все
эти действия были записаны в режиме Record. Затем в SCRIPT-EDITOR был добавлен
диалог для запроса параметров анимации, и единичные действия были организованы
в необходимые циклы. Теперь, чтобы создать новую движущуюся подложку, нужно
загрузить ее заготовку в PHOTO-PAINT, запустить на выполнение этот макрос либо
из меню Tools|Corel SCRIPT|Run Script, либо прямо из Corel SCRIPT-EDITOR. В появившемся
окне запрашивается число кадров анимации и коды направления движения (-1, 0 или
1). Результат можно сохранить в виде анимированного GIF-файла, чтобы затем
использовать его при дизайне Web-страниц. По умолчанию количество кадров анимации
определяется числом пикселей изображения (по вертикали или горизонтали) для обеспечения
максимально возможной плавности анимации. Однако реальное количество следует подбирать
экспериментально, исходя из размера получаемого анимационного файла. WITHOBJECT
"CorelPhotoPaint.Automation.9" BEGIN DIALOG GetAniParam 170, 80,
"Задайте параметры" TEXT 4, 4, 72, 10, "Количество кадров ="
TEXTBOX 78, 2, 30, 13, FCnt$ TEXT 4, 18, 140, 10, "Направление:"
TEXT 4, 30, 15, 10, "dx =" TEXTBOX 20, 28, 25, 13, UserDX$ TEXT
50, 30, 115, 10, "Влево: -1 На месте: 0 Вправо: 1" TEXT 4, 45, 15,
10, "dy =" TEXTBOX 20, 44, 25, 13, UserDY$ TEXT 50, 45, 115,
10, "Вверх: -1 На месте: 0 Вниз: 1" OKBUTTON 6, 60, 60, 15 CANCELBUTTON
95, 60, 60, 15 END DIALOG ' ----- Определим параметры изображения -----
SzW = .GetDocumentWidth() SzH = .GetDocumentHeight() .SetDocumentInfo
SzW, SzH ColorMode = 4 Res = .GetDocumentXdpi() FCnt$ = SzH if
SzW < SzH THEN FramesCnt$ = SzW UserDX$ = 1 UserDY$ = 1 ' -----
Запросим данные у пользователя ----- rc = DIALOG(GetAniParam) IF rc =
2 THEN STOP FMax = FCnt$ dx = UserDX$ dy = UserDY$ ' ----- Создадим
вспомогательную матрицу 3х3 ----- .EditCopy .FileNew SzW*3, SzH*3, ColorMode,
Res, Res, FALSE, TRUE, Д FMax, 0, 0, 0, 0, 192, 192, 192, 0, FALSE .SetDocumentInfo
SzW*3, SzH*3for r% = 0 to 2 for c% = 1 to 3 .EditPasteObject SzW*r%, SzH*c%-1,
"" next c next r .ObjectMerge True .EndObject .ObjectSelectNone
' ----- Для каждого кадра анимации ... ----- for f% = 2 to Fmax '
----- ... скопируем первый кадр ... ----- .MovieGotoFrame 1 .ObjectCreateFromBackground
.MovieGotoFrame f% ' ----- ... и сдвинем его в нужном направлении -----
.ObjectTranslate (SzW/FMax)*(f%-1)*dx, (SzH/FMax)*(f%-1)*dy .EndObject
.ObjectMerge FALSE .EndObject next f% ' ----- Установим итоговые
размеры анимации ----- .MaskRectangle SzW, SzH, SzW*2-1, SzH*2-1, 0, 0
.ImageCropToMask .MaskRemove END WITHOBJECT |