Персональный сайт Безмалой Елены
www.bezmalaya.narod.ru
Главная страница

       


Corel Photo-Paint 9 - Выпуск 1
В этом выпуске:
  • Corel SCRIPT облегчает работы в PHOTO-PAINT
  • 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

       

    E-mail: vlad@kerch.sf.ukrtel.netCopyright © 2000-2002
    Безмалая Елена
      Rambler's Top100 Рейтинг@Mail.ru