Как я могу сделать холст для видео, чтобы совершенно вписаться в районеHtml5 холст и видео
ответ
Процесс рисования
Подготовьте фоновое изображение в автономном режиме, удалив красную область делает альфа-канал из него вместо этого, а затем использовать его как это:
- рисовать видео на холсте с преобразованием прикладного соответствия тесно форма плюс небольшое перекрытие
- Нарисуйте фон (или его части после первого розыгрыша) поверх видео. Это замаскирует края видео, которые не подходят идеально.
Трансформация
Offline процесс:
- Plot точки (теперь) альфа области, поэтому у вас есть координаты, либо треугольник или четырехугольник. Примечание: холст поддерживает только аффинные преобразования (2D/параллелограммы), поэтому triangle has to be used. Для CSS вы можете использовать 3D transforms with basis in a quadrilateral shape.
- нормировать значения
В действии:
- Масштаб холста и нормированных значений до нужного размера
- Применить преобразование, рисовать видео, рисовать фон, как наложение поверх видео
И поскольку большинство видеороликов не более 30 кадров в секунду, вы также можете дросселировать цикл рисования до половины, чтобы оставить больше ресурсов для других вещи (используйте requestAnimationFrame()
с toggle flag).
Альтернативный подход:
Подготовка видео со всей настройкой, как вы хотите. Он должен хорошо сжиматься, так как окружающие области не меняются (используйте длинный интервал ключевого кадра), и в этом случае фон не содержит много деталей из-за низкой глубины резкости, что также помогает.
... Это не может быть сделано с носителями преобразований Html5 Canvas.
Вы пытаетесь преобразовать содержимое холста в формате Canvas (== ваше видео) в непараллелограмму, что невозможно с помощью собственных преобразований Canvas. Холст может быть преобразован только в параллелограммы.
Но ...
Вы можете наклонять холст для приблизительного нужный экран.
золота параллелограмма в этом изображении может быть сделано с нативной Canvas преобразований
Пример кода в деморолик:
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var cw=canvas.width;
var ch=canvas.height;
var angle=-Math.PI*.06;
var img=new Image();
img.onload=start;
img.src="https://dl.dropboxusercontent.com/u/139992952/multple/billboard1.jpg";
function start(){
cw=canvas.width=img.width;
ch=canvas.height=img.height;
ctx.drawImage(img,0,0);
ctx.transform(1,Math.tan(angle),0,1,0,0);
ctx.strokeStyle='gold';
ctx.lineWidth=4;
ctx.strokeRect(333,135,275,150);
}
<canvas id="canvas" width=300 height=300></canvas>
- 1. HTML5 видео и холст
- 2. Холст и видео - HTML5
- 3. Отзывчивый HTML5 Видео + Холст
- 4. Скрытое видео HTML5, скопированное на холст
- 5. рендеринг HTML5 Видео на холст сжимает изображение
- 6. HTML5 Холст и сглаживание
- 7. HTML5 холст и drawImage
- 8. HTML5 холст и прокрутка
- 9. HTML5 Холст и управление
- 10. allign видео и холст бок о бок в HTML5
- 11. HTML5: холст ширина и высота
- 12. Холст HTML5 и BDD - Огурцы
- 13. Оптимизация видео и холста HTML5
- 14. HTML5 Видео и деградация?
- 15. html5 видео рисует черный ящик (пустой) на холст
- 16. HTML5 Холст drawImage из видео, не показывающегося при первом розыгрыше
- 17. много html5 холст
- 18. HTML5 Холст: Масштабирование
- 19. Сроки в HTML5 Холст
- 20. Конфликты объектов HTML5 Холст
- 21. HTML5 холст нажмите событие
- 22. HTML5 холст мазок перекрывание
- 23. html5 холст strokeStyle?
- 24. html5 холст - текст Update
- 25. HTML5 прогресс холст бар
- 26. Перетаскивание на холст HTML5
- 27. мягкие края html5 холст
- 28. Перерисовать холст Javascript/HTML5
- 29. HTML5 Большой холст
- 30. HTML5 Холст растущих кругов
Хорошо, не так ли? Я пытаюсь получить эту форму видео в соответствии с нужным фреймом ... и изменять размер автоматически при изменении размера окна (так же, как я управлялся с фреймом). Управляется преобразованием видео с помощью CSS, но при изменении размера окна он не изменяет высоту. Спасибо, тo. –
Вы можете «подделать» непараллельное перекос, разрезав видеоизображение на множество вертикальных фрагментов, а затем растягивая их, чтобы они соответствовали рекламному щиту. Но резка и растяжка со скоростью 24-30 кадров в секунду приведет к дрожанию всех, кроме самых быстрых устройств. – markE
Как я могу архивировать это? –