Rotate

Общая информация

Автор:Александр Балахнин 'Fizick'
Версия: 1.5
Загрузка: http://avisynth.org.ru/
Категория: Геометрические плагины
Требования: RGB32 или планарные цветовые форматы
Лицензия: GPL

Информация

Плагин Rotate производит поворот или сдвиг кадра на произвольный угол.

Он может использоваться для коррекции перспективы любительских съемок или для специального эффекта. Внутренние функции Avisynth TurnLeft и TurnRight могут повернуть изображение только на 90 градусов. Плагин Rotate - быстрее чем плагины Zoom (от WarpEnterprises) и EffectRotation(из EffectsMany от vcmohan) и производит изображения хорошего качества (по-моему). Реализован метод (предложенный Alan Paeth) вращения растра посредством 3-х сдвигов. Пикслельная (линейная) интерполяция используется на каждом сдвиге. Размер (масштаб) и пропорции исходного изображения сохраняются.

Синтаксис и параметры

Rotate ( clip, float "angle", int "color", int "start", int "end", float "endangle", int "width", int "height", float "aspect", float "aspect")

HShear (clip, float "angle", int "color", int "start", int "end", float "endangle", int "width", int "height", float "aspect")

VShear (clip, float "angle", int "color", int "start", int "end", float "endangle", int "width", int "height", float "aspect")

Rotate - вращение, HShear - горизонтальный сдвиг, VShear - вертикальный сдвиг.

первый параметр - исходный клип.

angle - угол вращения в градусах по часовой стрелке. По умолчанию 0.0

color - цвет фоновой части клипа. Целое или шестнадцатиричное число или глобальная цветовая константа типа like color_gray (смотри colors_rgb.avsi). По умолчанию 0 (черный, color_black).

start - начальный поворачиваемый кадр. По умолчанию 0.

end - конечный поворачиваемый кадр. По умолчанию -1 (как последний кадр).

endangle - угол поворота конечного кадра. По умолчанию равен angle. Если другой, то угол вращения промежуточных кадров - линейная функция.

width и height - размеры выходного кадра. По умолчания 0 что быть равным размерам входного видео клипа.

aspect - аспект (пропорции) пиксела (PAR). По умолчанию 1.0 (квадратный пиксел).

Пример

loadplugin("rotate.dll")
avisource("g:\test.avi")
converttoRGB32()
Rotate(1.0) # вращение на 1 градус

Обсуждение

doom9 forum at http://forum.doom9.org/showthread.php?t=131307

Лицензия

Плагин распространяется на условиях лицензии GNU GPL v2, без всяких гарантий. Смотрите 'gpl-rus.txt'.
Документация распространяется на условиях лицензии CreativeCommons BY-SA 3.0 license.
Прошу материальную помощь для поддержки.

Исходный код основан на классе ImageRotate (с MMX оптимизацией) из
http://treskunov.net/anton/Software/doc/fast_and_high_quality_true_color_bitmap_rotation_function.html
Copyright (c) 2003 by Anton Treskunov
Permission to use, copy, modify, distribute and sell this software for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation.

Ревизии

Версия 1.0 (29.10.2007) - начальная

Версия 1.1 (30.10.2007) - добавлен цветовой формат YV12 (медленный, без MMX оптимизации), исправлена ошибка с заполнением

Версия 1.2 (18.11.2007) - Точная (интерполированная) позиция центра вращения (в оригинале была округленной)

Версия 1.3 (16.12.2007) - Удалено промежуточное вращение для углов -45...0; исправлены ошибки с RGB32; добавлены функции HShear и VShear; вращение интервала кадров

Версия 1.3.1 (02.07.2008) - Исправлена ошибка с angle=225 (спасибо mikeytown2 за доклад)

Версия 1.3.2 (25.07.2008) - Исправлена ошибка с YV12 (спасибо mikeytown2 за доклад)

Version 1.3.3 (09.09.2009) - Исправлена ошибка с постепенным поворотом (спасибо Terrachild за доклад)

Version 1.3.4 (22.09.2013) - Исправлена ошибка с постепенным поворотом для больших размеров кадра RGB32 (спасибо Ефремову за доклад)

Version 1.4 (28.02.2016) - Подправил код до vc2005. Обновил до Avisynth 2.6.0 (все планарные форматы).

Version 1.5 (11.03.2016) - Добавил поддержку для ралично прореженных планарных форматов. Добавил параметр "aspect". Изменил обработку больших углов (около 90) для совместимости с аспектом, но она теперь более размытая.

Загрузить плагин Rotate версии 1.5