О программе Слайд анимации

Правила записи файла протокола показа

В первой строке должно быть набито имя файла с фоновой музыкой и через знак '|' (вертикальная черта) пять чисел, разделенных пробелами. Первое число - номер картинки, к которой будет выполнен возврат после показа всех картинок из списка. Этот номер не обязательно должен указывать на первую картинку. Далее пара чисел указывает размер анимационного окна в пикселах. Все картинки будут показаны в этом размере. Если их размер больше, то они будут обрезаны. Если меньше, то они будут располагаться в соответствии с параметрами окна. Размер анимационного окна можно задавать произвольным, хоть на весь экран, при этом картинки будут показываться на сером фоне. Однако следует помнить, что каждая новая картинка просто накладывается на предыдущую, поэтому если размер картинок разный, то большие картинки будут видны по краям маленьких. Это можно использовать, но это в любом случае надо учитывать Следующая пара чисел показывает смещение левого верхнего угла окна от левого верхнего угла экрана. После запуска окно можно перемещать по экрану обычным образом, так что смещение задает только стартовое положение окна. Заданные числа корректируются таким образом, что как размеры окна так и смещение не должны уводить окно с экрана. Если задать очень большие размеры окна, то оно будет автоматически обрезано размерами экрана, а смещение сделано нулевым. При отрицательных значениях смещения окно будет расположено в центре экрана.

Для файла фоновой музыки нужно использовать MIDI (mid) файл. Встроенный проигрыватель программы не играет mp3 файлы, а файлы с расширением wav, au, aif имеют очень большой размер. Все файлы задаются своим URL адресом, то есть указывается полный адрес файла либо в интернете, либо на локальном компьютере. Вот примеры правильного задания адресов файлов:
http://kohnvict.narod.ru/midi/In-Grid-In-Tango.mid
File:d:/SS/1/tango.mid
В первом примере файл находится в интернете на моем сайте в папке /midi/. Я буду постепенно выкладывать туда коллекцию таких файлов, которые можно будет использовать для фоновой музыки. Во втором примере файл находится на локальном компьютере. В этом случае адрес должен начинаться словом (File:) а затем должен быть указан полный путь к файлу на компьютере.

В следующих строках должны быть указаны имена файлов с картинками, но после некоторых из них могут быть строки, предписывающие поставить на картинку текст (см. ниже). В строках - указателях на картинку, перед именем файла с картинкой первым символом должен быть набит символ "#", допустимые форматы: GIF, JPG, PNG. Сразу за именем файла через знак '|' записывается время показа данной картинки в сантисекундах (0.01 сек). В этой же строке можно указать второе число через пробел, которое будет определять режим перехода от предыдущей картинки к новой картинке. Сейчас работают 12 режимов перехода, задаваемых цифрами от 1 до 12. Время перехода 0.35 сек для первых 6 режимов и немного больше для последних 6 режимов (зависит от быстродействия процессора). Все режимы перехода описаны ниже в таблице

00 -- мгновенная смена кадра.
01 -- схлопывание старой картинки в центре.
02 -- вырастание новой картинки из центра
03 -- вырастание новой картинки из левого верхнего угла
04 -- вырастание новой картинки из левого нижнего угла.
05 -- новая картинка падает сверху вниз
06 -- новая картинка наползает слева направо
07 -- новая картинка смешивается со старой и ее вес все время растет от 0 до 1
08 -- старая картинка теряет яркость, затем новая картинка наращивает яркость
09 -- новая картинка выталкивает старую слева
10 -- новая картинка выталкивает старую справа
11 -- новая картинка выталкивает старую сверху
12 -- новая картинка выталкивает старую снизу

При необходимости в этой же строке можно указать еще пару чисел, как положительных, так и отрицательных. Эти два числа, третье и четвертое, задают смещения центра картинки из центра анимационного окна. Если они не указаны, то все картинки размещаются в центре. Если указаны смещения, то картинки будут смещены. Смещения нужно задавать индивидуально для каждой картинки и оно означает смещение центра картинки из центра анимационного окна.

Это еще не все. За смещениями можно указать еще тройку чисел: пятое, шестое и седьмое. Эти числа регулируют динамику изменения картинки в процессе показа, которая достигается автоматическим показом новых кадров, либо полученных из основного масштабированием, либо показываемых со смещением, что и создает эффект динамики. Пятое число указывает время смены кадров в сантисекундах (0.01 сек). Если оно равно нулю - ничего не происходит. Шестое число указывает число пикселей, которые используются при изменении. Оно может быть как положительным так и отрицательным. Седьмое число может быть равным 0, 1 или 2. Если седьмое число равно 0 или отсутствует, то происходит изменение размеров картинки. В этом случае шестое число задает число пикселей, на которое будет изменен вертикальный размер картинки за один раз. Надо иметь в виду, что время указывается без учета времени на перерасчет картинки. Это дополнительное время может быть значительным, поэтому надо вносить поправку в длительность показа в сторону ее уменьшения. Оптимизация параметров может быть проведена эмпирическим путем. Но есть одно правило. Число кадров, которые будут показаны точно равно отношению общего времени задержки на время показа одного кадра. Сделать масштабирование плавным не удается из-за довольно большого времени пересчета картинки. Кроме того, новая картинка может появиться с небольшим смещением, что создает эффект дрожания. По этой причине разумно менять размер картинки сразу на 5 пикселей или больше, но пореже. При этом кадры будут меняться рывком, но динамика все же останется.

Если седьмое число равно 1, то картинка будет двигаться слева направо или справа налево в зависимости от знака смещения. Для правильного показа исходная картинка должна иметь размер по горизонтали больше чем размер окна на величину S*N где S - абсолютная величина однократного смещения (параметр 6 без знака), а N - полное число кадров как отношение полного времени показа T к времени показа одной картинки D. Время показа одной картинки D можно ставить минимальным, то есть 1 и однократное смещение S тоже можно ставить минимальным, то есть 1. Тогда если горизонтальный размер окна равен 800, то размер картинки должен быть равен 800+T. Более того, исходно картинка должна быть поставлена со смещением на T/2 в другую сторону. При заданных размерах окна и картинки замедлить показ вдвое можно задав T и D в два раза больше одновременно. Если седьмое число равно 2, то картинка будет двигаться сверху вниз или снизу вверх в зависимости от знака смещения. Все остальное должно быть так же как в предыдущем случае, только по вертикали.

Картинки могут иметь произвольный размер и исходно они показываются как есть, без масштабирования. Поэтому очень большие картинки будут обрезаны если их не масштабировать заранее. Как уже говорилось, если размер картинки больше окна, то показывается та часть, которая соответствует окну, то есть как бы фрагмент. Поэтому нет смысла включать в файл те части картинки, которые не будут показаны, лучше ее промасштабировать или вырезать. Это можно сделать с помощью самого редактора, либо с использованием специальных программ. Простая и полезная программа для пакетного масштабирования находится на сайте
"http://www.realfiletools.com/free/photo-resize.htm".

Важно также помнить, что вновь показываемая картинка накладывается на предыдущую и если она имеет меньший размер, то предыдущая картинка остается частично видна.

В некоторых строках можно задать инструкцию установки на предыдущую картинку текста без фона, то есть как бы в прозрачном режиме. На самом деле текст просто рисуется на картинке. Чтобы заказать такой режим нужно после строки с нужной картинкой поставить строки специального вида. Эти строки могут присутствовать в любом числе для каждой строки текста - отдельная строка в протоколе. Итак, чтобы поставить текст на картинку надо набрать строку следующего типа
text=xxxxxxxxx| T S X Y R G B K
Здесь вместо xxxxx должен быть сам текст, который будет показан. Можно задавать как английский, так и русский текст в win-1251 кодировке. Буквами обозначены целые числа - параметры текста, а именно:
T - время показа текста в сантисекундах (0.01 сек)
S - размер фонта в пикселах
X Y - координаты левого нижнего угла текста в пикселах
R G B - параметры красного зеленого и синего для цвета текста в диапазоне от 0 до 255
K - тип текста, допустимые значения 0 - обычный, 1 - жирный, 2 - курсив, 3 - жирный курсив
Шрифт текста зафиксирован как "Sans Serif" и не может быть изменен.

Каждая новая строка добавляет на картинку новый текст не убирая старый. Так можно создать эффект постепенного возникновения текста, строка за строкой. Чтобы начать сначала, надо снова нарисовать картинку.

Важное замечание - текст ставится на картинку, а не на анимационное окно. Поэтому если размеры картинки будут больше размеров анимационного окна, то координаты текста могут не соответсвовать окну и будут смещены. Еще одно замечание, достаточно очевидное, но все же. Текст ставится только после того, как анимация заказанная на картинку полностью закончится. То есть если заказано движение картинки то оно все закончится и после этого только возникнет текст. Причина в том, что программа не читает новую инструкцию, пока не выполнит предыдущую полностью. Поэтому не ставьте текст на движущиеся картинки.

Файлы протоколов я со временем выставлю в интернет на сайт редактора.

Ручное управление показом

В процессе показа картинок в стационарном режиме (не во время перехода) программа ждет сигналов от клавиатуры и может менять свою работу в зависимости от этих сигналов. Так если заказана слишком большая пауза, то можно принудительно реализовать переход к новой картинке, а можно даже сделать возврат к предыдущей картинке. Ниже дан список всех клавиш, которые влияют на процесс

[Esc] -- полный выход из программы
[Enter] -- принудительная остановка показа, программа выключает фоновую музыку и ждет повторного нажатия клавиши, после чего фоновая музыка включается с самого начала и программа переходит на следующий кадр.
[Стрелка наверх] -- возврат на один кадр назад
[Стрелка влево] -- возврат на два кадра назад
[Backspace] -- возврат на три кадра назад
[Page Up] -- возврат на четыре кадра назад
[Page Down] -- движение вперед на пять кадров
[C] -- отмена фоновой музыки
[O] -- включение фоновой музыки после отмены
[Home] -- переход в самое начало
[End] -- переход в самый конец, после чего можно крутить назад
[Любая другая клавиша] -- движение вперед на один кадр

  Внимание! Сайт оптимизирован под браузер Google Chrome.