Как привязать картинку или текст к определенной точке в видео? — Алексей Лавриненко | Oleksiy Lavrynenko
Приветствую!
После длительной паузы попробую вернуться к блогу. И сегодня мы узнаем, как привязать картинку или текст к определенной точке на видео.
Итак, нам понадобится:
1. Adobe After Effects CS6 (работаю в нем)
2. Нулевой объект (Null object)
3. Tracker — встроенная функция Adobe After Effects CS6 (вдруг пригодится, в русском АЕ это «Инспектор» — за подсказку спасибо Виктору, который дополнил мою запись)
Итак, список подготовлен. Пора посмотреть на все это чуть подробнее.
В качестве скринов для текста я буду использовать композицию, которая не займет много времени и будет состоять из перемещающейся по экрану большой точки. Состоит композиция из слоя (белого) и круга, движение которого задано двумя ключевыми точками:
Попробуем привязать к этой точке слово «Привет», которое должно будет следовать за нашей точкой. Для этого добавляем в композицию нулевой объект: Layer — New — Null object:
Зачем? На самом деле Нулевой слой — это слой, который никак не проявляет себя в композиции, но — при применении к нему определенных свойств, этот слой сможет управлять другими слоями.
Итак, прыгающий круг есть, нулевой слой есть. Пора запускать Tracker: Window — Tracker:
Открытое окно трекера, кстати, выглядит вот так:
И … оп-па… Трекер вообще не понимает, что отслеживать, и как — ведь он работает с готовой композицией, а не слоями! Выход очевиден: создать вторую композицию, которая будет использовать первую в качестве ролика.
Теперь, наконец, можем еще раз запустить Tracker, и увидеть следующее:
Приблизительно все это можно описать следующими словами:
Track camera — отслеживать движение камеры
Track motion — отслеживать движение
Warp stabilizer — сглаживать колебания
Stabilize motion — стабилизировать движение
И возможности чекбоксов:
Position — отслеживать движение
Scale — отслеживать масштабирование
Остальное рассмотрим чуть позднее 🙂
Напомню, нам нужно отследить движение. Кликаем по: track motion, и ставим галочки в чекбоксах Position + Rotation. Сразу после этого в поле композиции появились два окошка (на скрине выделены красным):
Каждое из окошек нацелено на выделение зоны, которую нужно отследить. В связи с тем, что мы будем использовать наше отслеживание к нулевому объекту, можно отслеживать не конкретно нужную нам точку, а что-то близкое. В моем случае это будут границы круга (смотрим скрин чуть выше)
После того, как вы выбрали нужны точки для отслеживания — кликаем на кнопку: Analize Forfard и ждем 🙂
Спустя какое-то время (все зависит от сложности оттрекириваемой композиции) у вас получится нечто вроде такого:
где каждый из квадратиков — ключевая точка. Применяем анализ нажатием кнопки Apply в окне Трекера.
Дальше все совсем просто — используя нулевой слой (напомню, этот слой уже знает, как ему нужно двигаться) привязываем к нему текст. Добавляем текстовый слой:
Layer — New — Text
и пишем любое слово. В моем случае — это слово «Привет!»:
Располагаем его в нужном нам месте, а после — применяем к нему взаимосвязь слоев:
таким образом текст четко привязывается к нулевому объекту. Собственно … на этом все 🙂
Кстати, в качестве исходного видео взято видео с канала моего сына 🙂 Подписывайтесь, ставьте лайки — ему будет приятно!
И конечно, в случае возникновения вопросов — пишите на почту: oleksiy@lavrynenko. com или в Telegram.
Пропорции для img — dr.Brain
В этом очень небольшом обзоре мы изучим, как установить соотношение сторон (пропорции) для изображения, размещаемого на HTML-странице. Для чего это нужно? К примеру, полученные знания будут полезны, если возникает необходимость уместить картинки различных размеров и пропорций в квадратный блок (или любой другой блок с четко определенными размерами и соотношением сторон), не искажая изображения.
Следует понимать, что в данном случае мы будем манипулировать CSS-свойствами, ни одно изображении не пострадает и сохранит свое первозданное состояние.
Содержание
Изображение фиксированного размера
Если на страницу нужно вывести картинку заранее определенных размеров, можно воспользоваться атрибутами
и height
.
Так как мы не знаем размеры и пропорции исходного изображения, применим CSS-свойство object-fit
. Таким образом, мы сможем быть уверены, что картинка не деформируется.
HTML:
<img src="/path/to/image.jpeg" alt="">
CSS:
img { object-fit: cover; }
Результат можно увидеть на нижеприведенной иллюстрации. Заметьте: исходное изображение имеет большую ширину, но оно не подверглось искажениям, вместо этого оно “обрезано” по центру:
object-fit: cover
Свойство object-fit
принимает значения fill
, contain
, cover
, none
, scale-down
. Подробно информацию можно изучить на сайте MDN.
Изображение нефиксированного размера
Чтобы привести картинку, изменяющую свои размеры вместе с родительским блоком, к определенным пропорциям нужно воспользоваться оберткой. Оборачивающий элемент заставит изображение сохранять определенные пропорции, так как само изображение заполнит всю его площадь.HTML:
<div> <img src="/media/desk.jpg" alt=""/> </div>
CSS:
/* Position child elements relative to this element */ . aspect-ratio-box { position: relative; } /* Create a pseudo element that uses padding-bottom to take up space */ .aspect-ratio-box::after { display: block; content: ''; /* 16:9 aspect ratio */ padding-bottom: 56.25%; } /* Image is positioned absolutely relative to the parent element */ .aspect-ratio-box img { /* Image should match parent box size */ position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
Приблизительно так будет выглядеть результат при соотношении сторон 16:9:
16:9
Свойство padding-bottom
определяет высоту родительского контейнера, выраженную в процентах от его ширины. Например, при ширине блока 400px результирующая высота составит 56,25% от 400px, то есть около 225px.
Для того, чтобы определить нужное нам значение padding-bottom
необходимо разделить высоту на ширину.
Например, при соотношении сторон 16:9, арифмитические манипуляции будут выглядеть так:
9 / 16 = 0. 5625
Выразим результ в процентах (умножим полученное число на 100):
0.5625 * 100 = 56.25
Результат: 56.25%
Вот и все.
Заключение
Мы научились выводить на HTML-изображение в различных пропорциях без деформации исходной картинки. Предложенные варианты работы с изображениями фиксированных и нефиксированных охватывают значительную часть стандартных ситуаций, возникающих при верстке.
Полезно прочитать
- Как управлять размерами изображения с помощью CSS?
- CSS. Магия отступов
html — CSS — как сделать ширину контейнера изображения фиксированной и автоматически растянуть высоту
спросил
Изменено 4 года, 1 месяц назад
Просмотрено 202 тысячи раз
Я сделал такой html-код:
<Имг источник = ". ..">
И такой код CSS:
img { максимальная ширина: 100%; высота: авто; } .вещь { ширина: 120 пикселей; высота: 120 пикселей; высота: авто; плыть налево; поле: 3px; отступ: 3px; }
Что я хотел бы сделать, так это сделать отображение img с использованием ширины div и растянуть его высоту. Я также хочу, чтобы растяжка div соответствовала img. Это возможно?
- html
- css
То, что вы ищете, это min-height
и максимальная высота
изображение { максимальная ширина: 100%; высота: авто; } .вещь { ширина: 120 пикселей; минимальная высота: 120 пикселей; максимальная высота: авто; плыть налево; поле: 3px; отступ: 3px; }
1
Нет, вы не можете растянуть img, чтобы подогнать его под div, и одновременно добиться обратного результата. У вас будет бесконечный цикл изменения размера. Однако вы могли бы сделать некоторые заметки из других ответов и реализовать некоторые минимальные и максимальные размеры, но это был не вопрос.
Вам нужно решить, будет ли ваше изображение масштабироваться, чтобы соответствовать его родительскому элементу, или вы хотите, чтобы div расширялся, чтобы соответствовать его дочернему элементу img.
Использование этого блока говорит мне, что вы хотите, чтобы размер изображения был переменным, поэтому родительский элемент div является шириной, до которой масштабируется изображение. height: auto
сохранит пропорции вашего изображения. если вы хотите растянуть высоту, она должна быть 100%
, как эта скрипка.
изображение { ширина: 100%; высота: авто; }
http://jsfiddle.net/D8uUd/1/
Попробуйте Пример JSFiddle Зарегистрироваться через Facebook Зарегистрируйтесь, используя электронную почту и пароль Электронная почта Требуется, но никогда не отображается Электронная почта Требуется, но не отображается Задавать вопрос спросил Изменено
5 лет, 7 месяцев назад Просмотрено
21к раз Я хочу поставить левое и правое фиксированное изображение, и я не знаю, почему правое идет только вправо, когда оно не зафиксировано. Это мой код: и мой css: Может ли кто-нибудь помочь мне с этим? спасибо! РЕДАКТИРОВАТЬ это мой index.html: и CSS, который у меня есть: — это класс начальной загрузки. width:inherit
чтобы изображение принимало ширину своего контейнера изображение {
ширина:наследовать;
}
.вещь {
граница: 1px сплошной розовый;
ширина: 120 пикселей;
плыть налево;
поле: 3px;
отступ: 3px;
}
Зарегистрируйтесь или войдите в систему
Опубликовать как гость
Опубликовать как гость
html — Фиксированное положение изображения справа и слева с помощью CSS
#leftImage{
слева: 0;
ширина: 150 пикселей;
высота: 100%;
положение: фиксированное;
}
#правоеизображение{
справа: 0;
ширина: 150 пикселей;
высота: 100%;
положение: фиксированное;
}
<дел>
body {
фон: повтор URL(/img/background.jpg) исправлен;
фоновое положение-y: -50px;
фоновая позиция-х: -50px;
-webkit-background-size: обложка;
-moz-background-size: обложка;
-o-background-size: обложка;
размер фона: обложка;
}
#домашний экран {
поле сверху: 150 пикселей;
}
Контейнер