Overlay html: How To Create an Overlay
Код | Светильник | Источник света | DIM | Лампочка | |||
734302 | OVERLAY S25 COGNAC GLASS — BEIGE/COPPER/BEIGE | LED 4W (G9) | A++ | 2,46 |
LED |
||
734303 | OVERLAY S25 COGNAC GLASS — YELLOW/GREY-BEIGE/BEIGE | ||||||
734304 | OVERLAY S25 GREY GLASS — BEIGE/BEIGE/BEIGE | ||||||
734305 | OVERLAY S25 GREY GLASS — DARK BLUE/CLEAR BLUE/BEIGE | ||||||
734312 | OVERLAY S50 COGNAC GLASS — BEIGE/COPPER/BEIGE | LED 13W (E27) Fluo. max. 20W (E27) |
A++ |
5,8 |
LED
|
||
734313 | OVERLAY S50 COGNAC GLASS — YELLOW/GREY-BEIGE/BEIGE | ||||||
734314 | OVERLAY S50 GREY GLASS — BEIGE/BEIGE/BEIGE | ||||||
734315 | OVERLAY S50 GREY GLASS — DARK BLUE/CLEAR BLUE/BEIGE | ||||||
734322 | OVERLAY S65 COGNAC GLASS — BEIGE/COPPER/BEIGE |
LED 13W (E27) |
A++ |
12,5 |
LED |
||
734323 | OVERLAY S65 COGNAC GLASS — YELLOW/GREY-BEIGE/BEIGE | ||||||
734324 | OVERLAY S65 GREY GLASS — BEIGE/BEIGE/BEIGE | ||||||
734325 | OVERLAY S65 GREY GLASS — DARK BLUE/CLEAR BLUE/BEIGE |
Использование Radeon™ Overlay для настройки игровых и видеопараметров
В этом документе приводится информация об использовании Radeon™ Overlay.
Обзор меню Radeon Overlay
Технология Radeon™ Overlay впервые представлена в Radeon Software Adrenalin версии 17.12.1 и усовершенствована в версии AMD Radeon Software Adrenalin 2019 (18.12.2).
Radeon Overlay предоставляет экранное меню с параметрами рабочего стола или игр, которое отображается в верхней части экрана активного приложения и может быть вызвано с помощью предварительно определенной комбинации горячих клавиш.
Меню Radeon Overlay для рабочего стола включает следующие параметры:
- Radeon Relive
- Radeon WattMan
- Radeon Chill
- Radeon FRTC
- Game Advisor
- Мониторинг производительности
- Настройки отображения
Ниже приведен снимок экрана меню Radeon Overlay для рабочего стола:
Ниже приведен снимок экрана меню Radeon Overlay для игр.
Примечание | Параметры игр доступны только при запуске игры в эксклюзивном полноэкранном режиме. |
Примечание | Изменения параметров Radeon Overlay также применяются в параметрах Radeon™. |
Примечание | Radeon Overlay вместе со всеми связанными горячими клавишами можно отключить в меню Overlay. Нажмите на значок шестеренки, выберите «Отключить Radeon Overlay», затем нажмите «Подтвердить». |
Назначение комбинаций горячих клавиш для открытия Radeon™ Overlay
По умолчанию Radeon™ Overlay можно открыть с помощью комбинации клавиш ALT+R. Назначение другой комбинации горячих клавиш можно выполнить только в параметрах Radeon.
Чтобы настроить комбинации горячих клавиш для открытия Radeon Overlay, следуйте приведенным ниже инструкциям:
- Откройте параметры Radeon, нажав правой кнопкой мыши на рабочем столе и выбрав «Параметры AMD Radeon».
- Нажмите кнопку «Настройки» в нижней части экрана.
- Показано сочетание клавиш ALT+R, настроенное по умолчанию для Radeon Overlay. Если вы хотите изменить комбинацию по умолчанию, нажмите «Переключить горячие клавиши Radeon Overlay» и введите желаемую комбинацию клавиш.
Примечание Комбинация горячих клавиш должна включать клавиши CTRL и/или ALT. Не выбирайте комбинацию горячих клавиш, зарезервированную операционной системой или другим приложением (например, ALT+F4 используется Windows® для закрытия текущего приложения). - После завершения закройте параметры Radeon.
Теперь, когда комбинация горячих клавиш определена, можно вызвать Radeon Overlay в любое время с помощью этой комбинации.
Настройка параметров записи Radeon™ ReLive с помощью Radeon Overlay
Radeon™ ReLive позволяет пользователям записывать, передавать видеоролики игрового процесса и снимки экрана, а также делиться ими.
Для получения информации о настройке параметров Radeon ReLive с помощью Radeon Overlay см. следующую статью базы знаний: Как записать игровой процесс и поделиться им с помощью Radeon ReLive.
Настройка параметров Radeon™ WattMan с помощью Radeon™ Overlay
Radeon™ WattMan — это программа управления энергопотреблением, которая следит за напряжением графических систем, тактовой частотой ядер и памяти, а также скоростью вращения вентилятора и температурой. Radeon WattMan обеспечивает настройку и мониторинг производительности графической системы, и теперь его можно контролировать в Radeon Overlay для игр.
Для получения более подробной информации о Radeon WattMan см. следующую статью базы знаний: Как настроить производительность графической системы с помощью Radeon WattMan и Radeon Chill.
Чтобы настроить Radeon WattMan с помощью Radeon Overlay, откройте Radeon Overlay, используя горячие клавиши, описанные ранее (по умолчанию ALT+R).
Нажмите Radeon WattMan.
Прочитайте отказ от ответственности и, если согласны, нажмите «Принять».
Следующие параметры Radeon WattMan будут доступны для настройки в Radeon Overlay:
- Графический процессор
- Память
- Температура
- Загрузка/сохранение профилей
Графический процессор
Нажмите на «Графический процессор», чтобы перейти к следующим дополнительным параметрам:
- Частота %
- Контроль напряжения
По умолчанию «Частота %» установлена на значение «Вручную». Нажмите кнопку переключения частоты, чтобы переключиться между ручным и динамическим режимами частоты ядра.
Переместите ползунок влево или вправо в ручном режиме, чтобы уменьшить или увеличить частоту графического процессора.
Переместите ползунок влево или вправо в динамическом режиме, чтобы уменьшить или увеличить состояния частоты графического процессора с шагом 5 МГц. Нажмите «Применить» для сохранения изменений.
Контроль напряжения (мВ) обеспечивает изменение уровней напряжения для частотных состояний графического процессора. По умолчанию контроль напряжения установлен на значение «Автоматически». Нажмите кнопку управления напряжением, чтобы переключиться между ручным и автоматическим режимами.
После того как вы изменили режим с автоматического на ручной, у вас есть возможность отрегулировать напряжение для доступных состояний с шагом 5 мВ.
Память
Нажмите на «Память», чтобы перейти к следующим дополнительным параметрам:
- Частота %
- Контроль напряжения
- Тайминг памяти
По умолчанию «Частота %» установлена на значение «Вручную». Нажмите кнопку переключения частоты, чтобы переключиться между ручным и динамическим режимами частоты памяти. Переместите ползунок влево или вправо, чтобы снизить или увеличить частоту памяти с шагом 5 МГц.
Контроль напряжения (мВ) обеспечивает изменение уровней напряжения для частотных состояний памяти. По умолчанию контроль напряжения установлен на значение «Автоматически». Нажмите кнопку управления напряжением, чтобы переключиться между ручным и автоматическим режимами.
После того как вы изменили режим с автоматического на ручной, у вас есть возможность отрегулировать напряжение для доступных состояний. Переместите ползунок влево или вправо, чтобы снизить или увеличить напряжение памяти с шагом 5 мВ.
Параметр тайминга памяти снижает задержку памяти исходя из выбранного уровня.
Температура
Ползунок температуры позволяет регулировать предел мощности графического процессора с шагом 1%. Переместите ползунок влево или вправо, чтобы снизить или увеличить предел мощности графического процессора.
Загрузка или сохранение профилей
Загрузка или сохранение профилей позволяет быстро сохранять и загружать профили Radeon WattMan. Чтобы сохранить профиль Radeon WattMan, нажмите «Загрузка/сохранение профилей».
Выберите «Сохранить профиль».
Нажмите на профиль (1–3), чтобы сохранить текущие параметры Radeon WattMan в этом профиле. В приведенном ниже примере текущие параметры Radeon WattMan были сохранены в Профиле 1.
Чтобы загрузить профиль Radeon WattMan, нажмите «Загрузка/сохранение профилей».
Выберите «Загрузить профиль».
Настройка Radeon Chill с помощью Radeon Overlay
Radeon Chill — это функция энергосбережения, которая динамически регулирует частоту кадров в зависимости от движения вашего персонажа и камеры в игре.
Чтобы настроить Radeon Chill с помощью Radeon Overlay, откройте Radeon Overlay, используя горячие клавиши, описанные ранее (по умолчанию ALT+R).
Нажмите кнопку, чтобы включить Radeon Chill глобально, или используйте предопределенную горячую клавишу F11.
После включения можно настроить следующие параметры Radeon Chill для текущей запущенной игры:
- Chill — включить Radeon Chill в текущей игре
- Chill MIN — минимальная частота кадров для работы Radeon Chill (минимум 30 кадров в секунду, значение по умолчанию 70)
- Chill MAX — максимальная частота кадров для работы Radeon Chill (максимум 300 кадров в секунду, значение по умолчанию 144)
Ниже приведен снимок экрана с меню Radeon Chill, когда эта опция включена в Radeon Overlay.
Настройка параметров FRTC с помощью Radeon Overlay
Управление частотой кадров (FRTC) позволяет пользователям устанавливать максимальную целевую частоту кадров при запуске 3D-приложения в полноэкранном режиме. Преимущество заключается в том, что FRTC может снизить энергопотребление графического процессора (отлично подходит для игр, работающих с частотой кадров, намного превышающей частоту обновления экрана) и, следовательно, помогает уменьшить тепловыделение и скорость вращения/шум вентилятора на видеокарте.
Примечание | Изменения в FRTC должны быть применены до запуска игры. |
Чтобы настроить Radeon FRTC с помощью Radeon Overlay, откройте Radeon Overlay, используя горячие клавиши, описанные ранее (по умолчанию ALT+R).
Нажмите Radeon FRTC.
Перетащите ползунок FRTC, чтобы выбрать желаемую частоту кадров. Частоту кадров можно регулировать в диапазоне от 30 до 300 кадров в секунду.
Примечание | Чтобы восстановить Radeon FRTC до параметров по умолчанию, нажмите СБРОС. |
Использование Game Advisor в Radeon Overlay
Game Advisor — это инструмент, который может анализировать игровую производительность в режиме реального времени и предоставлять рекомендации о том, как улучшить игровой процесс с помощью доступных настроек игровой графики. Рекомендации основаны на создании баланса между производительностью и качеством изображения в игре.
Для получения информации о том, как использовать Game Advisor, см. следующую статью базы знаний: Как использовать Game Advisor в Radeon Overlay.
Мониторинг производительности системы с помощью Radeon Overlay
Radeon Overlay предоставляет отдельное экранное меню (OSD), которое обеспечивает мониторинг производительности системы во время 3D-игр. Можно выбрать отдельные показатели производительности, а также область отображения для показа экранного меню мониторинга производительности. Данные о производительности также можно сохранить в файл для дальнейшего анализа.
Чтобы мониторить производительность системы с помощью Radeon Overlay, откройте Radeon Overlay, используя горячие клавиши, описанные ранее (по умолчанию ALT+R).
Нажмите на «Мониторинг ПРОИЗВОДИТЕЛЬНОСТИ».
Опции настройки «Мониторинга ПРОИЗВОДИТЕЛЬНОСТИ» станут доступны, как показано в примере ниже.
Нажмите на «ОПЦИИ ПОКАЗАТЕЛЕЙ», чтобы перейти к следующим дополнительным параметрам:
- ОТОБРАЗИТЬ ПОКАЗАТЕЛИ — параметр переключения для отображения или скрытия экранного меню мониторинга производительности, также можно использовать сочетание клавиш CTRL+Shift+O.
- ИНТЕРВАЛ ВЫБОРКИ — время между каждым обновлением данных о производительности. Интервалы выборки могут варьироваться от 1 до 10 секунд и могут быть изменены с шагом в одну секунду.
- ЗАПУСК ВЕДЕНИЯ ЖУРНАЛОВ ПРОИЗВОДИТЕЛЬНОСТИ — начать/остановить запись данных о производительности в журнал.
- ОТОБРАЗИТЬ ПОКАЗАТЕЛИ — показать экранное меню мониторинга производительности при записи данных в журнал.
- СКРЫТЬ ПОКАЗАТЕЛИ — скрыть экранное меню мониторинга производительности при записи данных в журнал.
Ниже приведен пример снимка экрана с доступными дополнительными параметрами.
Нажмите ВЫБОР ПОКАЗАТЕЛЕЙ, чтобы выбрать любой из следующих показателей производительности для отображения и/или записи в журнал:
- Частота кадров — количество кадров в секунду
- Использование графического процессора — указывается в процентах (%)
- Тактовая частота движка графического процессора — указывается в мегагерцах (МГц)
- Тактовая частота памяти графического процессора — указывается в мегагерцах (МГц)
- Температура графического процессора — указывается в градусах Цельсия
- Мощность графического процессора — указывается в ваттах
- Скорость вращения вентилятора графического процессора — указывается в оборотах в минуту
- Использование памяти VRAM — указывается в гигабайтах (ГБ)
- Использование центрального процессора — указывается в процентах (%)
- Использование системной памяти — указывается в гигабайтах (ГБ)
Ниже приведен пример снимка экрана меню «ВЫБОР ПОКАЗАТЕЛЕЙ».
Нажмите «ВЫБОР РАСПОЛОЖЕНИЯ ПОКАЗАТЕЛЕЙ», чтобы выбрать размещение экранного меню мониторинга производительности. Варианты:
- Верхний левый угол экрана
- Верхний правый угол экрана
- Нижний левый угол экрана
- Нижний правый угол экрана
Примечание | Чтобы восстановить параметры до значений по умолчанию, нажмите кнопку «СБРОС», расположенную рядом с «Мониторингом ПРОИЗВОДИТЕЛЬНОСТИ». |
Настройка параметров отображения с помощью Radeon Overlay
Параметры отображения позволяют настраивать следующие опции.
- Radeon FreeSync
- Radeon Enhanced Sync
- Цвет
Radeon FreeSync
Radeon FreeSync™ — это технология AMD, разработанная для устранения задержек и/или разрывов изображения в играх и видео посредством привязки частоты обновления экрана к частоте кадров видеокарты. Для получения более подробной информации о технологии Radeon FreeSync см. страницу о технологии Radeon™ FreeSync.
Чтобы включить эту функцию с помощью Radeon Overlay, откройте Radeon Overlay, используя горячие клавиши, описанные ранее (по умолчанию ALT+R).
Нажмите «Параметры отображения» и выберите Radeon FreeSync.
Нажмите на кнопку переключения, чтобы включить FreeSync. Чтобы отключить FreeSync, нажмите кнопку переключения еще раз.
Radeon Enhanced Sync
Radeon Enhanced Sync — это технология AMD, разработанная для обеспечения игрового процесса с малой задержкой без разрывов изображения, когда частота кадров в играх превышает частоту обновления экрана.
Для получения более подробной информации о Radeon Enhanced Sync см. страницу о технологии AMD Enhanced Sync.
Чтобы включить эту функцию с помощью Radeon Overlay, откройте Radeon Overlay, используя горячие клавиши, описанные ранее (по умолчанию ALT+R).
Нажмите «Параметры отображения» и выберите Radeon Enhanced Sync.
Нажмите на кнопку переключения, чтобы включить Enhanced Sync. Чтобы отключить Enhanced Sync, нажмите кнопку переключения еще раз.
Цвет
Radeon Overlay позволяет быстро настраивать цвета без необходимости открывать параметры Radeon™. Изменения цвета применяются глобально и вступают в силу немедленно.
Чтобы настроить параметры цвета с помощью Radeon Overlay, откройте Radeon Overlay, используя горячие клавиши, описанные ранее (по умолчанию ALT+R).
Нажмите «Параметры отображения» и выберите «Цвет».
Параметры цвета можно настроить индивидуально для каждого экрана, подключенного к системе. Выберите нужный экран, нажав на «Экран №», как показано ниже:
Для каждого подключенного экрана можно настроить следующие параметры:
- ЦВЕТОВАЯ ТЕМПЕРАТУРА — регулирует холодные и теплые оттенки экрана. Измеряется в градусах Кельвина (К), и значения могут варьироваться от 4000 для более холодного (акцент на синие и зеленые оттенки) до 10 000 для более теплого (акцент на красные и желтые оттенки) изображения.
- НАСЫЩЕННОСТЬ — регулирует насыщенность изображения. Значение должно находиться в пределах от 0 до 200.
- КОНТРАСТНОСТЬ — регулирует контрастность изображения. Значение должно находиться в пределах от 0 до 200.
- ТОН — регулирует тон изображения. Значение должно находиться в пределах от –30 до +30.
- ЯРКОСТЬ — регулирует яркость изображения. Значение должно находиться в пределах от –100 для более темного изображения до +100 для более светлого изображения.
Ниже приведен пример снимка экрана меню «Цвет» в Radeon Overlay:
Чтобы вернуть параметры цвета к значениям по умолчанию, нажмите кнопку «СБРОС». |
* Intel предоставляет контент, взятый на сторонних сайтах, для вашего удобства и может указывать ссылки на дополнительные сторонние сайты. Предоставление такого контента и/или ссылок представляет собой лишь предложения и не должно быть ошибочно принято как одобрение или рекомендация для какого-либо конкретного действия. Выполнение действий, рекомендованных сторонними поставщиками, может привести к нарушениям в работе, повреждению системной платы или процессора или сокращению срока эксплуатации. Intel не несет никакой ответственности за использование вами сторонних сайтов или материалов и отказывается от каких-либо явных или подразумеваемых гарантий в отношении сторонних сайтов и материалов. Intel не контролирует и не проверяет сторонние материалы и сайты, на которые предоставляются ссылки. Рекомендуем посетить указанные сайты с соответствующими данными для подтверждения их точности.
Режимы наложения. Overlay и Soft Light
В первой части мы говорили о методике анализа и алгоритме работы режима Normal. Далее рассмотрели работу пар затемняющих и осветляющих режимов: Darken и Lighten; Multiply и Screen ; Color Burn и Color Dodge; Linear Burn и Linear Dodge.Начинаем разбираться с контрастными режимами. При использовании этих режимов исходное изображение может как затемняться, так и осветляться. И надо сразу развеять одно распространенное заблуждение, часто встречающееся как в книгах, так и в видеоуроках.
Будет исходное изображение затемняться или осветляться, зависит только от яркости корректирующего изображения, но никак не от самого исходного. Если яркость корректирующего изображения меньше 128 — исходное изображение затемняется, если больше — осветляется. Это верно для всех контрастных режимов, кроме Hard Mix (но этот режим отнесен к контрастным скорее «за компанию», в свое время мы с ним разберемся).
Как всегда, желающие одновременно с чтением «покрутить файлы» могут скачать послойные psd (33 мб) разбираемых примеров.
Overlay
Материалы для анализа
Левая доска: результат наложения на исходную картинку (9 вертикальных полос с шагом 32 тоновых уровня, черная слева, белая справа) корректирующей (9 горизонтальных полос с шагом 32 тоновых уровня, черная внизу, белая вверху) в режиме Overlay. Числа в клетках показывают яркость после наложения.
Правая доска: схема изменения яркостей — чем больше изменилась яркость, тем светлее соответствующая клетка (независимо от направления изменения яркости исходной картинки). Числа в клетках показывают, насколько изменилась яркость. Их положительные значения указывают на увеличение, а отрицательные на ее уменьшение яркости исходного изображения.
Левая шкала: отклонение яркости накладываемой плашки от средне-серого (128).
Семейство кривых, оказывающих на исходную картинку затемняющее воздействие, аналогичное наложению однотонных плашек с яркостями 0, 32, 64, 96, 128, и осветляющее воздействие, аналогичное наложению однотонных плашек с яркостями 128, 160, 192, 224, 255.
Формула для отнормированной яркости.
S — яркость исходного изображения; C — яркость корректирующего изображения; R — яркость финального изображения.
Формула для 8-битного режима.
s — яркость исходного изображения; с — яркость корректирующего изображения; r — яркость финального изображения.
Описание и ответы на общие вопросы
В режиме Overlay средний тон (128) исходного изображения осветляется или затемняется до яркости накладываемого. Сила воздействия линейно убывает при отклонении яркости исходного изображения от средней до нуля в белой и черной точке.
1. Существует ли для данного режима наложения нейтральный цвет и если да, то какой?
Как и для всех контрастных режимов, нейтральным для Overlay является средне-серый (128).
2. Как изменяется степень воздействия по полному тоновому диапазону?
Максимальное воздействие приходится на средние тона. При равном отклонении от средне-серого воздействие уменьшается одинаково как для более темных, так и для более светлых областей исходного изображения. Это хорошо видно по правой доске: она симметрична относительно средней вертикали. На белую и черную точку не воздействует.
3. Как изменяется контраст в различных тоновых диапазонах?
При осветлении: линейно возрастает в темной и падает в светлой половине тонового диапазона. При затемнении: линейно падает в темной и возрастает в светлой половине тонового диапазона.
4. Соответствует ли уменьшение непрозрачности ослаблению воздействия?
Уменьшение непрозрачности корректирующего изображения равносильно ослаблению воздействия. Под ослаблением воздействия подразумевается уменьшение отклонения яркости накладываемой плашки от средне-серого (128). Справа показано ослабление воздействия наложения плашки яркости 32 за счет уменьшения непрозрачности, слева — аналогичное уменьшение воздействия за счет осветления плашки.
5. Каким реальным фотопроцессам соответствует режим наложения?
Аналогов в пленочной фотографии и реальной жизни не имеет. Но можно поискать аналогии с уже разбиравшимися режимами. Бытует такое мнение, что Overlay — это смесь Multiply и Screen. Это верно только наполовину, а точнее на две четверти. Overlay затемняет аналогично Multiply только области темнее средне-серого: поле A(0)-E(128) на клетчатой доске. В терминах кривых это соответствует затемнению левой половиной кривой.
Аналогично действию Screen осветляются только области светлее средне-серого: поле E(128)-K(255) на клетчатой доске. Что соответствует осветлению правой половиной кривой. В оставшихся двух четвертях аналогию с Multiply и Screen можно провести только математическую, но никак не реальную. Потому что режимы работают шиворот навыворот: осветлением темных участков занимается Multiply — поле A(128)-E(255), затемнением светлых Screen — поле E(0)-K(128).
6. Что происходит при наложении картинки самой на себя?
Повышается контраст в средних тонах. Коррекция аналогична наложению симметричной S-образной кривой, точную форму которой можно посмотреть в первой статье цикла. Немного забегая вперед, скажу, что результат полностью аналогичен самоналожению в режиме Hard Light, но об этом в следующий раз.
7. Как меняется результат, если поменять местами исходное и корректирующее изображение?
Изменение порядка наложения слоев при сохранении режима Overlay дает такой же результат, как изменение режима на Hard Light при сохранении порядка наложения. Подробнее об этом в следующий раз.
Для чего может использоваться режим Overlay
Для внесения коррекций в средние тона изображения
Такое применение вытекает непосредственно из алгоритма Overlay. А такие коррекции интересны и важны, потому что средние тона являются самыми информативными для человеческого восприятия. Именно в них наше зрение имеет самый широкий цветовой охват, лучше различает цветовые тона и вариации яркости. Я не буду разбирать одну картинку, а просто перечислю наиболее известные примеры подобных коррекций с краткими пояснениями.
Для повышения резкости копия изображения, обработанная фильтром High Pass, накладывается на исходник в режиме Overlay. Ореолы нерезкого маскирования максимально проявляются в средних тонах, но линейно ослабляются (до полного исчезновения) по пути к светам и теням. Тем самым предотвращаются белые пробои в светах и черные пробои в тенях, а так же визуально назойливые темные ореолы в светах и светлые в тенях.
Для внесения шума на картинку в режиме Overlay накладывается средне-серый слой с изображением шума. В таком случае шум проявляется на средних тонах изображения, не засоряя света и тени. Это соответствует поведению пленки, на которой зерно практически не проявляется в светах и тенях.
Для усиления бликов и теней на исходное изображение в режиме Overlay накладывается средний по яркости (как следствие, самый детализированный) канал. Перед наложением можно доработать его кривыми или вместо среднего канала использовать заготовку, сделанную при помощи инструментов фотошопа (Channel Mixer, Black & White и т.д.) или другими методами. Overlay защищает изображение от пересветов и чрезмерных провалов в тенях.
Тот же средний канал или специально сделанную заготовку можно инвертировать, размыть и наложить на исходник в режиме Overlay для выравнивания освещенности. Я уже описывал это в статье «Стероиды для светов и теней».
Однотонную заливку, полученную из копии исходного изображения применением фильтра Blur \ Average, инвертируем и накладываем на исходник в режиме Overlay. Несколько жульнический, но иногда полезный способ привести в чувство цветовой баланс изображения. Не точный аналог, но достаточно близкая альтернатива использованию слоя кривых и серой пипетки. Плюс Overlay-наложения в возможности все записать в экшен. Подробнее об этом можно прочесть в посте «О фильтре Average и серой пипетке».
При ручной доработке маски
Основная задача при ручной доработке маски — усиление контраста между выделенными и замаскированными участками. То есть, надо сделать светлые участки еще светлее, постаравшись не затронуть соседние темные, и наоборот. Обычно для этого предлагается один из двух рецептов.
Первый: рисовать по маске кисточкой в режиме Overlay белым цветом для осветления, а черным для затемнения. Второй: рисовать по маске инструментом Dodge Tool с установкой Range: Highlights для осветления или Burn Tool с установкой Shadows для затемнения. Для инструментов параметр Opacity или Exposure задается небольшим, чтобы воздействие было плавным. Давайте сравним и оценим, когда и какой метод лучше применять.
На картинке приведены все четыре варианта рисования по дискретному яркостному клину с соответствующими установками инструментов. Хорошо заметно, как Dodge выжег света, а Burn провалил тени. Чтобы лучше оценить результат работы кисти и посмотреть, как изменяется воздействие в зависимости от яркости клина, давайте рассмотрим следующую картинку.
Здесь отображается изменение яркости исходника после применения инструментов. Принцип, как на правой клетчатой доске — чем ярче поле, тем больше изменилась яркость, тем сильнее воздействие. Хорошо видно, что основное воздействие кисточки пришлось на средние тона.
На практике это означает следующее. Сначала удобнее пройтись кистью в режиме Overlay по областям средней яркости. Если область граничит с темной, мы работаем белым цветом и осветляем ее до светло-серого. Если область граничит со светлой, работаем черным цветом и затемняем ее до темно-серого. Тем самым подготавливая почву для последующего прохода инструментами Dodge и Burn.
Для самых дотошных привожу структуру слоев «как это было сделано»: раскрашенный клин наложен на исходный в режиме Difference, корректирующим слоем кривых дополнительно поднят контраст. Заготовка клина для самостоятельных экспериментов лежит по ссылке, указанной в начале статьи (Pattern_16.psd).
Soft Light
Материалы для анализа
Левая доска: результат наложения на исходную картинку (9 вертикальных полос с шагом 32 тоновых уровня, черная слева, белая справа) корректирующей (9 горизонтальных полос с шагом 32 тоновых уровня, черная внизу, белая вверху) в режиме Soft Light. Числа в клетках показывают яркость после наложения.
Правая доска: схема изменения яркостей — чем больше изменилась яркость, тем светлее соответствующая клетка (независимо от направления изменения яркости исходной картинки). Числа в клетках показывают, насколько изменилась яркость. Их положительные значения указывают на увеличение, а отрицательные на ее уменьшение яркости исходного изображения.
Левая шкала: отклонение яркости накладываемой плашки от средне-серого (128).
Семейство кривых, оказывающих на исходную картинку затемняющее воздействие, аналогичное наложению однотонных плашек с яркостями 0, 32, 64, 96, 128, и осветляющее воздействие, аналогичное наложению однотонных плашек с яркостями 128, 160, 192, 224, 255.
Формула для отнормированной яркости.
S — яркость исходного изображения; C — яркость корректирующего изображения; R — яркость финального изображения.
Формула для 8-битного режима.
s — яркость исходного изображения; с — яркость корректирующего изображения; r — яркость финального изображения.
Описание и ответы на общие вопросы
В режиме Soft Light максимальное затемнение соответствует гамма-коррекции с коэффициентом гамма 2, максимальное осветляющее — с коэффициентом гамма 1/2. Промежуточные воздействия являются пропорциональным уменьшением максимальных.
1. Существует ли для данного режима наложения нейтральный цвет и, если да, то какой?
Как и для всех контрастных режимов, нейтральным для Soft Light является средне-серый (128).
2. Как изменяется степень воздействия по полному тоновому диапазону?
Более сильное воздействие приходится на темную половину тонового диапазона, достигая своего максимума в области тричетвертьтонов. На белую и черную точку не воздействует.
3. Как изменяется контраст в различных тоновых диапазонах?
При осветлении: резко возрастает в диапазоне от теней до тричетвертьтонов и плавно падает в более светлой части полного тонового диапазона. При затемнении: резко падает в диапазоне от теней до тричетвертьтонов и плавно возрастает в более светлой части полного тонового диапазона.
4. Соответствует ли уменьшение непрозрачности ослаблению воздействия?
Уменьшение непрозрачности корректирующего изображения равносильно ослаблению воздействия. Под ослаблением воздействия подразумевается уменьшение отклонения яркости накладываемой плашки от средне-серого (128). Справа показано ослабление воздействия наложения плашки яркости 32 за счет уменьшения непрозрачности, слева — аналогичное уменьшение воздействия за счет осветления плашки.
5. Каким реальным фотопроцессам соответствует режим наложения?
Пять из семи контрастных режимов имеют в своем названии слово «свет». Естественно, этот «свет» не имеет никакого отношения к тому свету, который был в реальной сцене. Просто в жизни осветление и затемнение — это блик и тень, результат освещения сцены каким-то источником света. Поэтому большинство контрастных режимов называется (а их воздействие описывается) по аналогии с источником света, дающим светотеневой рисунок, похожий на результат применения данного режима. При этом никаких точных аналогов контрастные режимы не имеют.
Гамма-коррекция не трогает белую и черную точки. Таким образом, после ее применения на изображении сохраняются блики и глубокие тени. И что самое главное, она дает наиболее визуально равномерное осветление/затемнение картинки. То есть, лучше всего соответствует общечеловеческому (или, если хотите, обывательскому) понятию «сделать посветлее/потемнее».
Именно поэтому клетчатая доска для режима Soft Light самая равномерная из всех контрастных режимов, на ней лучше всего различаются границы между всеми полями. А в жизни мягкое, плавное, равномерное изменение яркости дает рассеянный или, как его еще называют, «мягкий» свет. В фотографии такой свет обычно используют в качестве заполняющего.
6. Что происходит при наложении картинки самой на себя?
Повышается контраст в средних тонах. Коррекция аналогична наложению пологой несимметричной S-образной кривой, задающей более сильную коррекцию в тенях. Точную форму этой кривой можно посмотреть в первой статье цикла.
7. Как меняется результат, если поменять местами исходное и корректирующее изображение?
При изменении порядка наложения результат изменяется.
Для чего может использоваться режим Soft Light
Я недаром поместил в эту статью рассказы о двух совершенно независимых режимах, и прежде, чем говорить о применении Soft Light, давайте сравним его с Overlay. У них есть важная общая особенность — они не трогают белую и черную точки. Из-за этого у некоторых пользователей появляется мысль: «Soft Light — это просто в два раза ослабленный Overlay». Результаты действительно похожи, но давайте взглянем внимательнее.
Я уже приводил эту картинку в статье «Стероиды для светов и теней». На ней красным цветом показаны максимальные воздействия Overlay после ослабления в два раза, синим — максимальное воздействие Soft Light. Воздействия на области светлее средне-серого действительно очень похожи. А вот в тенях картина здорово расходится.
Воздействие Overlay симметрично — тона темнее и светлее средне-серого меняются одинаково, Soft Light сильнее влияет на тени. Как при затемнении, так и при осветлении. Теперь вы это знаете, а дальше при выборе режима отталкивайтесь от стоящих перед вами задач: если необходимо более сильное влияние на тени при меньшем влиянии на света — выбираем Soft Light, если влияние на тени надо минимизировать — Overlay.
А теперь про применение. В этот раз я не буду перечислять конкретные случаи, в которых используется Soft Light (в интернете такого добра вагон и маленькая тележка ). Есть более интересный вопрос: «Как самому придумать коррекцию именно для данной картинки, а не повторять чей-то рецепт?» Для этого надо последовательно ответить на четыре вопроса, а потом, идя в обратном порядке, реализовать эти ответы на практике.
1. Какие изменения в картинке мы хотим получить?
Ответ должен четко описывать изменение яркости и контраста на различных участках изображения и в разных тоновых диапазонах. Если требуется изменение цвета, необходимо описать соотношение воздействий на различные каналы. Время детского лепета про «ощущение воздушности» и «хочется покрасивее» кончилось, нужны четкие технические формулировки.
2. Какой режим наложения обеспечивает такое воздействие?
У каждого режима есть свои фирменные черты, а описаны они в ответах на общие вопросы (FAQ). Чтобы не зубрить их все можете поступить, как я: ориентироваться по форме семейства кривых.
3. Как должна выглядеть накладываемая картинка, чтобы в выбранном режиме обеспечить необходимые изменения?
На этом этапе надо достаточно точно описать заготовку для наложения, чтобы понять, что нужно создавать.
4. Какие общие черты должна иметь картинка, чтобы из нее можно было сделать заготовку для наложения?
Это общее перечисление соотношений яркости и контраста, которые должны иметь объекты на картинке. Необходимо, чтобы найти, на базе чего можно сделать заготовку для наложения.
Наглядно разобраться в процессе нам поможет старый знакомый — Mitsubishi A6M Zero. На данной фотографии мне не нравится фон — слишком темный. Из-за этого изображение кажется грязным, самолет не выделяется, нет ощущения полета и воздушности. Это только присказка, а теперь начинаем отвечать на вопросы.
1. Какие изменения в картинке мы хотим получить?
Мягкое равномерное осветление фона, более сильное в верхней части фотографии. Самолет сильно меняться не должен, но можно согласиться на то, что он станет немного контрастнее, а самые светлые участки незначительно осветлятся, чтобы не было рассогласования с фоном. Нельзя допускать дополнительного затемнения черного капота и осветления насыщенных участков (опознавательные знаки и желтые полосы на передней кромке крыльев).
2. Какой режим наложения обеспечивает такое воздействие?
«Мягкое», «тактичное», равномерное» — это фирменные характеристики Soft Light. А то, что для осветления используется не осветляющий, а контрастный режим, не страшно. Он ведь тоже умеет осветлять.
3. Как должна выглядеть накладываемая картинка, чтобы в выбранном режиме обеспечить необходимые изменения?
Фон светлее средне-серого (128), более светлый вверху. Самолет близкий к средне-серому. Капот не темнее средне-серого.
4. Какие общие черты должна иметь картинка, чтобы из нее можно было сделать заготовку для наложения?
Весь самолет, за исключением светлых слабо насыщенных областей, максимально контрастен к фону, особенно к верхней его части. Фон по возможности равномерный.
Ну, вот мы и ответили на все вопросы. А теперь вперед смотреть каналы. Наиболее дотошные пользователи могут сделать копии картинки и перевести их в CMYK и Lab. Получив таким образом доступ к дополнительным каналам. Но для решения этой задачи нам хватит и RGB.
Итак, канал Red не самый подходящий: фон очень неоднородный и слабо отличающийся по яркости от самолета, насыщенные желтые полосы и красные опознавательные знаки очень светлые.
В Green ситуация лучше: фон более однородный, он светлее и поэтому контрастнее к самолету, красные опознавательные знаки темные. Из минусов: желтые полосы на передней кромке крыла и номер на киле светлые, области бликов на фюзеляже по-прежнему достаточно светлые.
Канал Blue: однозначный лидер по контрасту самолета и фона, все насыщенные участки самолета темные. Картину портит очень сильный шум, в основном шум на фоне. Так как именно фон будет подвергаться максимальному воздействию со стороны заготовки, имеющиеся в этой области шумы сильнее всего пролезут на финальное изображение.
Можно было бы выбрать один из не самых подходящих вариантов, но почему не попытаться взять достоинства каждого, избежав недостатков? В синем канале нас привлекает более темный самолет, в зеленом канале — более гладкий фон. Походив с пипеткой по фону, убеждаемся, что в зеленом канале он немного темнее, чем в синем. Наложив эти каналы друг на друга в режиме Darken, мы заберем темный самолет из синего канала и гладкий (темный) фон из зеленого.
Я сделал это, перенеся содержимое каналов на новые слои (Blue_Channel и Green_Channel) и задав верхнему из них режим наложения Darken. Кстати, если бы оказалось, что фон в зеленом канале немного светлее, чем в синем, мы могли бы перед наложением слегка притемнить зеленый канал.
Теперь заготовку надо доработать до вида, описанного в ответе на третий вопрос. Ставим корректирующий слой кривых и смотрим на гистограмму заготовки. Большой пик справа от красного пунктира — это фон, левая часть пика соответствует нижним областям, а правая верхним, меленький холмик слева — самолет, его левый склон, уходящий в глубокие тени — капот.
Ставим точку 1 и поднимаем кривую таким образом, чтобы фон на заготовке стал светлее средне-серого, а самолет остался темнее.
Чтобы не допустить затемнения капота, поднимаем черную точку кривой до уровня 128. При помощи точки 2 кладем кривую на горизонталь в диапазоне, соответствующем капоту. Точка 3 позволяет регулировать повышение контраста самолета. Если вы вообще не хотите менять что-либо в нем, просто задайте точкам 2 и 3 выходную яркость 128.
И последний штрих: точка 4 задаст дополнительное осветление верхней части заготовки, тем самым сильнее осветлив фон вверху картинки. Если кроме яркости необходимо менять цвет, придется идти в каналы и организовывать различное воздействие на них. Например, чтобы сделать небо более голубым, затемнять красный канал в диапазоне чуть темнее полутонов и дополнительно осветлять синий в средних тонах.
Осталось объединить все вновь созданные слои в группу, задать ей режим наложения Soft Light и наслаждаться результатом. Приведенная здесь коррекция не является универсальным способом обработки фотографий самолетов. А вот методика подбора режима и создания заготовки универсальна. Не всегда все будет получаться гладко, но дорогу осилит идущий. А желающие поупражняться над Zero, могут найти его по ссылке в начале статьи.
В следующий раз мы продолжим разбираться контрастными режимами, рассмотрев сразу четыре: Hard Light, Vivid Light, Linear Light и Pin Light.
Желающие посетить очные занятия по цветокоррекции и обработке изображений могут познакомиться с программами и списком ближайших мероприятий в заглавном посте моего ЖЖ. Там же вы найдете ссылки на другие мои статьи.
Без предварительного согласования с автором разрешается перепечатка и размещение этого материала на любых ресурсах с бесплатным доступом при условии полного сохранения текста (в том числе и этого раздела), ссылок и иллюстраций, указания авторства и ссылки на первую публикацию.
Для коммерческого использования или перепечатки с внесением изменений необходимо согласование с автором. Связаться со мной можно по электронной почте [email protected]
© Андрей Журавлев (aka zhur74), апрель 2011 г.
Первая публикация http://zhur74.livejournal.com/14839.html
Как создать наложение изображения при наведении курсора с помощью HTML и CSS?
В этой статье мы рассмотрим 5 различных типов наложений: левый, правый, верхний, нижний и плавный. Вам понадобятся два div. Один будет вашим оверлейным div, содержащим то, что будет отображаться, когда пользователь наведет курсор на изображение, а другой будет контейнером, содержащим как изображение, так и его оверлей. Внутренний div, представляющий наложение, будет иметь два класса. Один, который вы будете использовать для стилизации всех наложений, а другой, представляет определенный тип наложения (левый, правый, верхний, нижний или плавный).
Ваше изображение должно быть размещено за пределами внутреннего div (оверлей), но внутри внешнего (контейнера). Не забудьте добавить альтернативный текст с описанием изображения, чтобы помочь пользователям, использующим программу чтения с экрана.
HTML-код:
< meta charset = "UTF-8" > |
Код CSS: Установите положение контейнера относительно его нормального положения и определите его ширину и высоту.Ключ к тому, чтобы наложение заработало, - установить его абсолютное положение. Это означает, что он расположен относительно ближайшего предка, которым в данном случае является изображение. Чтобы оверлей был не всегда и появлялся только тогда, когда пользователь наводит курсор на изображение, установите его непрозрачность на ноль, что означает полную прозрачность. Используйте «background-color», чтобы установить цвет вашего наложения. Используйте «переход», чтобы наложение появлялось постепенно, а не всплывала поверх изображения. Поскольку мы устанавливаем непрозрачность наложения равной нулю, при наведении курсора на контейнер мы хотим установить непрозрачность на 1.Это означает, что как только пользователь наводит курсор на элемент контейнера, появляется оверлей.
|
Fade Overlay: Ширина и высота наложения - это ширина и высота изображения, равные изображению div.При наведении курсора на изображение поверх него появляется оверлей.
- Программа:
9044: 9044: Выход<
html
>
0
<
meta
charset
=
"UTF-8"
>
<
title
> Image Overlay
title
>
<
style
>
body {
выравнивание текста: по центру;
}
h2 {
цвет: зеленый;
}
.контейнер img {
ширина: 250 пикселей;
высота: 250 пикселей;
}
. Контейнер {
положение: относительное;
ширина: 400 пикселей;
высота: авто;
}
.наложение {
положение: абсолютное;
переход: все 0,3 с;
непрозрачность: 0;
цвет фона: # 9bcd9b;
}
. Контейнер: наведение. Наложение {
непрозрачность: 1;
}
.overlayFade {
высота: 250 пикселей;
ширина: 250 пикселей;
верх: 0;
слева: 75 пикселей;
цвет фона: # 9bcd9b;
}
стиль
>
головка
>
<
корпус
5> 900
<
центр
>
<
h2
класс
=
"название"
>
GeeksforGeeks
h2
>
<
b
> Наложение изображения
b
>
<
br
>
<
br
>
<
9001 5 делкласс
=
«контейнер»
>
<
img
src
=
класс
=
«изображение»
>
<
div
class
=
"overlay overlayFade"
>
div
>
div
>
центр
>
корпус
>
html
>
Левое наложение: Высота наложения - это высота изображения (100 %).Ширина равна нулю и установлена влево. Ширина устанавливается на 100% при наведении курсора на изображение и постепенно перемещается слева направо.
- Программа:
<
html
>
<
<
meta
charset
=
"UTF-8"
>
<
title
> Image Overlay
title
>
<
style
>
body {
выравнивание текста: по центру;
}
h2 {
цвет: зеленый;
}
.контейнер img {
ширина: 250 пикселей;
высота: 250 пикселей;
}
. Контейнер {
положение: относительное;
ширина: 400 пикселей;
высота: авто;
}
.наложение {
положение: абсолютное;
переход: все 0,3 с;
непрозрачность: 0;
цвет фона: # 9bcd9b;
}
. Контейнер: наведение. Наложение {
непрозрачность: 1;
}
.overlayLeft {
высота: 100%;
ширина: 0;
верх: 0;
слева: 75 пикселей;
background-color: # 9bcd9b ;;
}
. Контейнер: парение.overlayLeft {
ширина: 250 пикселей;
}
стиль
>
голова
>
<
корпус
5> 900
<
центр
>
<
h2
класс
=
«название»
>
GeeksforGeeks
h2
>
<
b
> Наложение изображения
b
>
<
br
>
<
br
>
<
div
класс
=
«контейнер»
>
<
img
src
=
класс
=
«изображение»
>
<
div
class
=
"overlay overlayLeft"
>
div
>
div
>
центр
>
корпус
>
html
>
Правое наложение: Высота наложения - это высота изображение (100%).Ширина равна нулю и установлена вправо. Ширина устанавливается на 100% при наведении курсора на изображение и постепенно перемещается справа налево.
- Программа:
000<
html
>
<
<
meta
charset
=
"UTF-8"
>
<
title
> Image Overlay
title
>
<
style
>
body {
выравнивание текста: по центру;
}
h2 {
цвет: зеленый;
}
.контейнер img {
ширина: 250 пикселей;
высота: 250 пикселей;
}
. Контейнер {
положение: относительное;
ширина: 400 пикселей;
высота: авто;
}
.наложение {
положение: абсолютное;
переход: все 0,3 с;
непрозрачность: 0;
цвет фона: # 9bcd9b;
}
. Контейнер: наведение. Наложение {
непрозрачность: 1;
}
.overlayRight {
высота: 100%;
ширина: 0;
верх: 0;
справа: 75 пикселей;
background-color: # 9bcd9b ;;
}
. Контейнер: парение.overlayRight {
ширина: 250 пикселей;
}
стиль
>
голова
>
<
корпус
5> 900
<
центр
>
<
h2
класс
=
«название»
>
GeeksforGeeks
h2
>
<
b
> Наложение изображения
b
>
<
br
>
<
br
>
<
div
класс
=
«контейнер»
>
<
img
src
=
класс
=
«изображение»
>
<
div
class
=
"overlay overlayRight"
>
div
>
div
>
центр
>
корпус
>
html
>
- 9000
Верхнее наложение: Ширина наложения - это ширина i маг (100%).Высота равна нулю и установлена наверху. Высота устанавливается на 100% при наведении курсора на изображение и постепенно перемещается сверху вниз.
- Программа:
<
html
>
<
<
meta
charset
=
"UTF-8"
>
<
title
> Image Overlay
title
>
<
style
>
body {
выравнивание текста: по центру;
}
h2 {
цвет: зеленый;
}
.контейнер img {
ширина: 250 пикселей;
высота: 250 пикселей;
}
. Контейнер {
положение: относительное;
ширина: 400 пикселей;
высота: авто;
}
.наложение {
положение: абсолютное;
переход: все 0,3 с;
непрозрачность: 0;
цвет фона: # 9bcd9b;
}
. Контейнер: наведение. Наложение {
непрозрачность: 1;
}
.overlayTop {
ширина: 250 пикселей;
высота: 0;
верх: 0;
справа: 75 пикселей;
background-color: # 9bcd9b ;;
}
. Контейнер: парение.overlayTop {
высота: 250 пикселей;
}
стиль
>
голова
>
<
корпус
5> 900
<
центр
>
<
h2
класс
=
«название»
>
GeeksforGeeks
h2
>
<
b
> Наложение изображения
b
>
<
br
>
<
br
>
<
div
класс
=
«контейнер»
>
<
img
src
=
класс
=
«изображение»
>
<
div
class
=
"оверлей overlayTop"
>
div
>
div
>
центр
>
корпус
>
html
>
Нижнее наложение: Ширина наложения - это ширина изображение (100%).Высота равна нулю и установлена снизу. Высота устанавливается на 100% при наведении курсора на изображение и постепенно перемещается снизу вверх.
- Программа:
<
html
>
<
<
meta
charset
=
"UTF-8"
>
<
title
> Image Overlay
title
>
<
style
>
body {
выравнивание текста: по центру;
}
h2 {
цвет: зеленый;
}
.контейнер img {
ширина: 250 пикселей;
высота: 250 пикселей;
}
. Контейнер {
положение: относительное;
ширина: 400 пикселей;
высота: авто;
}
.наложение {
положение: абсолютное;
переход: все 0,3 с;
непрозрачность: 0;
цвет фона: # 9bcd9b;
}
. Контейнер: наведение. Наложение {
непрозрачность: 1;
}
.overlayBottom {
ширина: 250 пикселей;
высота: 0;
снизу: 0;
справа: 75 пикселей;
background-color: # 9bcd9b ;;
}
. Контейнер: парение.overlayBottom {
height: 255 пикселей;
}
стиль
>
голова
>
<
корпус
5> 900
<
центр
>
<
h2
класс
=
«название»
>
GeeksforGeeks
h2
>
<
b
> Наложение изображения
b
>
<
br
>
<
br
>
<
div
класс
=
«контейнер»
>
<
img
src
=
класс
=
«изображение»
>
<
div
class
=
"overlayBottom"
>
div
>
div
>
центр
>
корпус
>
html
>
Вниманию читателя! Не прекращайте учиться сейчас.Освойте все важные концепции HTML с Web Design for Beginners | HTML курс.
Минимальная настройка для оверлея
Ниже вы можете увидеть два изображения, которые запускают оверлеи. Есть два используемые термины: триггер - это элемент, который запускает оверлей и оверлей является элементом который размещается вверху страницы.
Павильон Барселоны
Барселона, Испания
Павильон Барселоны, спроектированный Людвигом Мис ван дер Роэ, был павильоном Германии на Международной выставке 1929 г. в г. Барселона, Испания.Это было важное здание в истории современная архитектура.
Некоторые критики, историки и модернисты заявили, что это " самое красивое здание века »
Павильон Барселоны
Барселона, Испания
Еще одна уникальная особенность этого здания - экзотическая модель . материалы Mies выбрал .
Плиты из высококачественных каменных материалов, таких как шпон Tinos verde античный мрамор и золотой оникс, а также тонированное серое стекло, зеленый, белый, помимо полупрозрачного стекла, выполняют исключительно как пространственные разделители.
HTML-код для триггеров
Сначала мы определяем триггеры следующим образом:
HTML
Эти триггеры ссылаются на элемент оверлея в атрибут rel . Этот атрибут селектор jQuery, который выбирает наложение, являющееся использовал. Типичный селектор выбирает один элемент, имеющий уникальный id .Например, # mies1 выбирает элемент, имеющий id "mies1".
На странице может быть один или несколько триггеров, и каждый может ссылаться на одинаковые или разные накладки.
Примечание: мы использовали здесь тег button , но вы можете использовать любой элемент в качестве триггера, если он атрибут rel . Типичный сценарий: используйте тег с атрибутом rel и вложенный тег img .
HTML-код для
оверлеевТеперь нам нужны оверлеи:
Павильон Барселоны
Барселона, Испания
Содержание ...
...
HTML
Наложение может быть любым элементом HTML, но div чаще всего используется. Наложение может содержать любой HTML, включая формы, изображения, объекты Flash и виджеты JavaScript, и это полностью зависит от вас, как вы его структурируете и стилизуете. Вот почему это инструмент такой гибкий. Это позволяет визуализировать как наложение, так и его содержание. Просто используйте свое воображение.
Кодировка CSS
Вот стиль наложенного элемента.Есть пара на что следует обратить внимание:
- Мы вообще не использовали изображения. Все на чистом CSS. Этот
дает нам возможность изменять размеры наложения
динамически. Высота наложения динамически регулируется в соответствии с
высота элементов
- Мы использовали закругленные границы CSS3 и тени. Эти настройки улучшат внешний вид оверлея в последних версиях браузеров без ущерба для старых браузеров.Это называется "прогрессивным Улучшение с помощью CSS ».
- Мы стилизовали кнопку закрытия, хотя ее нет в нашем HTML. состав. Эта кнопка автоматически создается наложением инструмент с именем класса закрыть . Вы можете изменить это в конфигурация.
- Вы можете использовать
абсолютное позиционирование элементов внутри оверлей и эти элементы располагаются относительно элемент наложения. Это потому, что наложение также абсолютно позиционируется.Так работает CSS. - Поскольку наложение абсолютно позиционировано, в большинстве случаев размещается вверху страницы. Однако, если у вас есть совсем другое (или относительно) позиционированные элементы на странице, в которых они могут появляться поверх вашего оверлея. Вы можете использовать параметр z-index чтобы правильно расположить элементы. Элемент с более высокий z-index помещается поверх элемента с меньшее значение.
/ * накладываемый элемент * /
.simple_overlay {
/ * изначально должен быть скрыт * /
display: none;
/ * разместить оверлей поверх других элементов * /
z-index: 10000;
/ * стиль * /
background-color: # 333;
ширина: 675 пикселей;
min-height: 200 пикселей;
граница: сплошная 1px # 666;
/ * Стиль CSS3 для последних браузеров * /
-moz-box-shadow: 0 0 90px 5px # 000;
-webkit-box-shadow: 0 0 90px # 000;
}
/ * кнопка закрытия в правом верхнем углу * /
.simple_overlay .close {
background-image: url (/media/img/overlay/close.png);
позиция: абсолютная;
справа: -15 пикселей;
верх: -15 пикселей;
курсор: указатель;
высота: 35 пикселей;
ширина: 35 пикселей;
}
CSS
Вот простой стиль для элемента .details . внутри оверлея, показывающего описание изображения:
/ * стиль для элементов внутри наложения * /
.details {
position: absolute;
верх: 15 пикселей;
справа: 15 пикселей;
font-size: 11px;
цвет: #fff;
ширина: 150 пикселей;
}
.детали h4 {
color: #aba;
font-size: 15 пикселей;
}
CSS
Кодирование JavaScript
Это, безусловно, самая простая часть этой настройки. Мы просто выбираем триггерные элементы и включить наложение без каких-либо дополнительных параметры:
Фото кредиты »
Создайте пользовательский оверлей Twitch с HTML, CSS и JS · Изучите с Джейсоном
Подписи предоставлены White Coat Captioning (https://whitecoatcaptioning.com/). Коммуникационный доступ в реальном времени (CART) предоставляется для облегчения коммуникационной доступности и не может быть полностью дословным протоколом разбирательства.
Привет всем. Добро пожаловать в очередной выпуск «Учись с Джейсоном». Сегодня будет немного по-другому, потому что у нас был перенос в последнюю минуту. Если вы сейчас следите за событиями в Соединенных Штатах, вы знаете, что все немного запутано. Ой, я приглушен.
Привет всем. Сейчас ты меня слышишь? Хорошо, теперь у нас есть звук.
Привет всем и добро пожаловать в выпуск «Учись с Джейсоном». Так что сегодня все будет немного по-другому. У нас был перенос в последнюю минуту.Я знаю, что многие из вас пришли повидаться с Эммой. Она отступила. Мы по-прежнему будем выступать в шоу, просто не собираемся делать это сегодня. Если вы следили за событиями в Соединенных Штатах, вы знаете, что сейчас все не так уж и хорошо. Итак, сегодня я справляюсь со стрессом - единственный способ, который я знаю, как справиться со стрессом, - это прятать свой путь на протяжении всего проекта и просто, вы знаете, извлекать из этого максимум пользы. Делаем то, что можем. Итак, мое намерение на сегодня, мой план на сегодня - поработать над оверлеями Learn With Jason, и мы собираемся посмотреть, сможем ли мы найти лучший способ пошутить и отвлечься от ситуации, которую мы можем напрямую контролировать.Я скажу, знаете ли, в знак поддержки всем людям, которые в настоящее время наблюдают, как в основном белые террористы входят в правительственное здание без каких-либо проблем, в то время как, вы знаете, если вы черный в этой стране, вы не можете идти к своей машине. Итак, немного солидарности.
Хорошо. Все в порядке. Итак, что - готово? Мы готовы. Итак, сегодня я хочу поработать - у меня есть новая нелепая вещь, которую я сделал. Итак, это самая нелепая вещь, которую я когда-либо делал, и я надеюсь, что вам всем она понравится.Вот так я хочу, чтобы моя новая анимация для подписчиков выглядела. Итак, вы можете видеть, что я выхожу и как бы оглядываюсь. У меня есть зеленый экран, и я просто в восторге от того, что он существует, не так ли? Итак, я хочу, чтобы каждый раз, когда кто-то подписывается, я хочу воспроизвести это видео, и я хочу показать чье-то имя, того, кто подписался. Я хочу сказать, что они сделали, да? Итак, что мне нужно сделать для того, чтобы это сработало, - так это то, как это работает под капотом, это контролируется - это видео в формате MP4, а в качестве видео в формате MP4 оно имеет зеленый фон.Итак, если я действительно выключу это, что я сделаю, как? Найдите кнопки. Вот так. Вот кнопка.
Итак, я могу выключить хроматический ключ, и вы увидите, что это просто зеленая рамка на экране. И я могу заставить его искать зеленый цвет, а затем отфильтровать его, чтобы мы получали только не зеленые цвета. Это означает, что если я хочу сделать это так, как я делал большинство своих оверлеев, это не будет работать так, как я хочу, потому что прямо сейчас все мои оверлеи являются частью одного и того же веб-сайта.Каждая из частей веб-сайта, то есть нижняя треть, которая является логотипом, заголовком, информацией о спонсоре и чатом, называется нижней третью, и на самом деле это похоже на div, и у меня сетка дисплея там. И затем чат происходит из подписки GraphQL от созданного мной Socket Studio. И то, как мы собираемся справиться с этим, заключается в том, что есть подписка GraphQL, которая приносит мне события чата, а также дает мне звуковые эффекты. Если кто-то из вас решит включить звуковой эффект прямо сейчас.Я выключу это видео. Итак, звуковые эффекты работают так: да, мой чат теперь отфильтровывает HTML, и это лучше, чем было.
Мол, попробуй сделать - ага, так ты видишь, что там только что случилось с хостингом? И я увидел, что Bobby Tables тоже принимает гостей. Большое спасибо вам обоим.
Таким образом, это работает так: когда происходит событие от Twitch, он отправляет событие, и это событие перехватывается этим веб-сайтом. Это реакция - я думаю, что на самом деле preact, наложение, которое, например, будет прослушивать эти события, а затем активировать и отображать определенные компоненты в зависимости от того, что происходит.Итак, это то, что построено с использованием тостов - это то, на чем построен веб-сайт. И, собственно, знаете что? Почему бы нам не переключиться, и я собираюсь поговорить о спонсорах на секунду, и мы поедем сюда. Итак, перейдем к сольному потоку, и я собираюсь открыть новый браузер. Вроде принял это сегодня как вялость, потому что я как бы пытался подготовиться к тому, что у меня нет гостя, и забыл подготовиться. Итак, что мы делаем прямо сейчас, у нас есть шоу, новая функция, вся домашняя страница совершенно новая. Мол, это все новенькое на 2021 год.Я хотел перестроить сайт Learn With Jason. Это новый сайт. Он встроен в Toast. Позвольте мне обновить это, потому что да, всего этого не хватало. На домашней странице теперь отображается немного больше информации о сайте, и она показывает, когда я живу, или показывает следующий выпуск. Итак, теперь вы можете видеть живые подписи прямо на главной странице learnwithJason.dev. Это обеспечивает Иордания. Большое спасибо. Джордан из White Coat Captioning, и они могут предоставить нам субтитры благодаря щедрой спонсорской поддержке, и все они вмешиваются, чтобы сделать это каким-то образом доступным для большего числа людей, что очень много значит для меня.
Итак, то, что мы собираемся сделать здесь, это все, что происходит на этом сайте, например, тот факт, что этот сайт знает, что я живу, и наложение, что вы Seeing знает, когда кто-то что-то говорит, и если я бегу, например, если я хочу запустить команду здесь, я могу запустить команду ahem, и произойдет то, что мой оверлей получит некоторые события. Итак, я могу показать вам, как это выглядит, если я открою то, что нужно. Итак, перейдем к - вот мои сцены. Давайте их откроем.И это репо с открытым исходным кодом. Вы все можете это проверить, если хотите. Он откроется не в том окне, не так ли? Конечно. Пляжный мяч смерти здесь. Ну давай же. Я не веду достаточно сольных стримов. Я не знаю, как построить время. Это то, что нам нужно, спасибо. Хорошо, вот репо, если хотите его проверить. Вот как я веду шоу. И то, как работает шоу, - взгляните на компоненты здесь.
На самом деле, я собираюсь открыть это в коде, чтобы мне было немного легче ориентироваться.Итак, у нас есть компоненты, и каждый из них - своеобразный. Итак, у нас есть нижняя треть - это компонент Redact, логотип, детали и чат. Итак, чат - это компонент, который запускает созданную мной студию сокетов. Это набор крючков. Это на NPM. Это не очень проверено. Он у меня до сих пор, вроде, в канарейке. Пока работает только у меня. Однако вы можете попробовать это, если хотите. Думаю, сработает. Я не знаю. Мы узнаем. Итак, мы используем чат Twitch, а затем я могу загрузить чат, и мы просто отображаем его, чтобы отображать различные сообщения чата.И мы также используем rehype sanitize, спасибо Крису за указание на это. И что это делает, так это то, что это гарантирует, что только теги изображений и - я думаю, я разрешил теги marquee, потому что это меня рассмешило. Вы можете использовать только тег изображения, только источник и альт. Это все. Итак, это только для того, чтобы разрешить - это разрешит только эмоции, но я думаю, вы могли бы попытаться опубликовать изображение другого типа. Не ... я имею в виду, я думаю, ты не можешь. Не делай этого. Будет грязно. В конце концов, я это выясню, например, заблокирую только домен Twitch или что-то в этом роде.Но затем каждый из них втягивается, и мы показываем имя пользователя и все такое. Есть шатер. Получил.
Итак, допустимый хаос. Превосходно. Я большой поклонник. Итак, теперь, когда у нас есть - теперь, когда у нас есть чат, у нас также есть поддержка для некоторых других вещей, таких как игра с бородой, если вы хотите бегать! Расти, бриться или хлопать, вы увидите это работает. Вы сажаете туда собак? В нижнем левом углу вы видите, что этот маленький CSS-анимированный Джейсон, созданный Кэссиди Уильямс, теперь работает и взаимодействует.Все это делается опять же с использованием веб-технологий. Это происходит из подписки GraphQL. Итак, я могу - например, давайте посмотрим, смогу ли я - посмотрим, смогу ли я вспомнить здесь действующий URL. Но это основа Socket Studio. Раньше он назывался Stream Blitz. Мне пришлось его переименовать, потому что кто-то уже владел Stream Blitz. Так что мне пришлось это исправить. Что я могу сделать, так это настроить здесь подписку на свой канал, и что произойдет внутри него, если я загляну сюда и посмотрю, например, на сообщение и автора, имя пользователя и роли, а затем мы также можем посмотреть ну, я не знаю, эмоции или что-то в этом роде.Эмоции типа должны иметь - о, давайте пропустим эмоции. Нам не нужна вся эта информация.
Итак, давайте просто запустим это. Я собираюсь очистить это, чтобы мы могли все увидеть. Одна проблема, с которой я столкнулся с игровой площадкой GraphQL, заключается в том, что я не могу прокручивать. Итак, если кто-то оформляет подписку, посмотрите на это, а. Итак, теперь всякий раз, когда кто-то оставляет комментарий, он отображается в списке, верно? Итак, если я остановлюсь, я обновлюсь, и давайте начнем снова. Я собираюсь запустить команду. Итак, вы можете видеть, что мы получаем вот такую команду.Вот кто это запустил. И если я посмотрю, например, у меня есть возможность сказать на Twitch - >> Кхм. >> Командование. А потом здесь я могу узнать, что это за команда и каков обработчик, и все мои ... все мои команды Twitch на самом деле являются бессерверными функциями.
Итак, если мы сделаем это снова и скажем, типа, я не знаю, уфда. >> Уфда. Все в порядке. Это интересно. >> Когда бы это ни происходило, на мои оверлеи отправляется мое имя автора, имя пользователя, роли, верно? Затем, если я сверну его, я вижу, что команда oofda была запущена.Обработчик включает это сообщение, которое я хочу отправить в чат. Это аудио, которое я хочу воспроизвести, и это изображение, которое я хочу показать. И все это, как вы понимаете, я использую для этого Cloudinary. Это облегчает мою жизнь. Мне не нужно принимать это. Как это выглядит под капотом. Вернемся к исходному коду здесь. Когда я вхожу в силу, я могу использовать это, я могу - давайте посмотрим, я передаю это? Да, это правильно. Итак, вот здесь у меня есть звуковой эффект, верно?
Итак, использование звукового эффекта - это целая машина состояний.Есть целый эпизод, в котором мы можем поговорить о том, как это работает, но я на самом деле очень горжусь этим. Потому что это конечный автомат, и он работает как очередь. Так что, если вы хотите, чтобы все сразу поставили в очередь звуковой эффект. Будет хаос. Сейчас все ставят в очередь разные звуковые эффекты, и мы посмотрим, как это работает. Ты делаешь это? Пойдемте, вы все. Хорошо, поехали. Я вижу двоих, да? Итак, пожалуйста, подождите. Вот еще несколько. Смотрите, что сейчас происходит, так это то, что состояние X ввело нас в игру - теперь она закончена.Так что это работает, кхм. Кто-то другой запустил его. Теперь он начинает играть кхм. Мне нужно сделать некоторую очистку, чтобы вывести этот материал. Разве это не весело? У него есть способность полностью обрабатывать очереди. Каждый раз, когда он выполняется, у него есть помощник по очереди дескрипторов, который помещает команду в очередь. Итак, он запускается - итак, он выходит из режима ожидания, он загружает ресурсы команды. Это начинается. Он активен. Затем, когда он останавливается, он переходит к проверке команд в очереди, и это просто говорит, есть ли еще одна команда в очереди - я не знаю, сколько мы запланировали, но это будет кошмар.Но теперь он идет в очередь. >> Уфда. Все в порядке. Так что это интересно. >> Думаю, что это все. Это конец. Нет, у нас есть еще один. Все в порядке. Итак, когда он доходит до конца, он смотрит на длину очереди контента, и если есть очередь, он переходит к следующей, в противном случае он возвращается в режим ожидания и ждет, пока кто-нибудь выполнит команду.
Подождите, вы не видите мой код? Это ... подожди, Джон, что ты говоришь? Я что-то упускаю? Хорошо. Хорошо. Да, вы можете увидеть код.Подожди, подожди, я схожу с ума здесь? Хорошо. Ой, из-за звуковых эффектов. [Смех] Извините. Мне нужно уменьшить звуковые эффекты или сделать что-нибудь. Хорошо, мы можем - как насчет того, чтобы немного потянуть это, и я также сверну это, чтобы мы могли видеть немного лучше.
Хорошо. Итак, теперь у нас есть ... у нас есть вся эта очередь, в которой мы используем состояние X. Я прохожу действие, чтобы мы могли все это сделать. Итак, как уже было сказано, здесь происходит то, что я снова использую этот useTwitchchat и просто ищу текущую команду.И всякий раз, когда я получаю текущую команду, я передаю ее на свой компьютер. Здесь вы видите, что я просто отправляю событие добавления в очередь. Когда я добавляю его в очередь, он ищет, где он находится. Он переходит из режима ожидания в режим воспроизведения или помещает эту команду в очередь для воспроизведения после того, как будет воспроизведена следующая команда. И все это питает эти эффекты - это здесь. Так я получаю состояние. И я могу посмотреть, что происходит. Я вижу, что у меня есть состояние ожидания, а затем я использую дисплей эффектов, чтобы показать эффект в верхней части экрана.И это, вы знаете, это просто, насколько я могу это сделать. Я использую разделение - я спорил с ним в React, поэтому я делаю эту строковую вещь, где разделение вернет мне строку, а не мою - в отличие от, например, разделения этого здесь, но это Позвольте мне установить подпись вроде, вы знаете, кто, Принц, что бы там ни играл.
Yowdayum. Мне нравится, что это имя пользователя заставляет вас говорить с акцентом. Боже мой, это было так потрясающе. Да, так что ... я забыл, что говорил. Ах да, спросил йовдайум, это React, да, это React.Моя цель - использовать для этого Toast. Я хотел писать простые модули ES. Он не использует Webpack, он не использует Babel. Он идет прямо из моего кода в браузер. Это определенно, на мой взгляд, круто. Это также приводит к очень, очень быстрому времени сборки, например, мои сцены, построенные на Netlify, с момента, когда я нажимаю свой код, до времени, когда он работает, примерно 30 секунд. Это супер, супер быстро. Это действительно забавно.
Итак, вам нужно что-то построить, потому что в данном случае я на самом деле ничего не строю.Это больше похоже на то, что я должен - я использую некоторые узловые модули, и не все узловые модули являются модулями ES. Итак, мне нужно сделать шаг, на котором тост захватывает модули узлов и помещает их в веб-модули и проверяет, все ли подключено так, как должно быть. Я не использую многие функции генератора статических сайтов на этом сайте. Я использовал множество из них в learnwithJason.dev. Вы можете проверить этот исходный код самостоятельно. Причина, по которой я прохожу через это, я хочу создать этот оверлей для подписчиков. Это MP4.Это должен быть ключ цветности. Если я выключу экран, вы увидите, как видео выглядит само по себе, без применения к нему цветового ключа. Это означает, что я не могу сделать это видео частью своих наложений, если я не собираюсь пытаться понять что-то, как он говорит, я не собираюсь писать свой собственный веб-фильтр GL. Я использую Streamlabs OBS. У них есть все необходимое, чтобы это произошло. Итак, вот что я собираюсь сделать, это как мне по-прежнему использовать веб-технологии, чтобы вызвать это, но затем позволить OBS обрабатывать, вы знаете, его часть с хромакеем.Я собираюсь создать небольшое окно, например, страницу, на которой нет ничего, кроме этого видео, а затем я собираюсь использовать исходный код браузера, чтобы вставить это. Итак, способ, которым я хочу это сделать, начнем с добавления страницы. Итак, я пойду сюда.
Yowdayum, вы спрашиваете, как бы я порекомендовал изучить React? Я изучил React путем реверс-инжиниринга чужих проектов. Я вроде как копался. Мы собираемся создать кое-что с нуля сегодня, чтобы вы получили представление о том, как выглядит создание страницы.Я собираюсь сделать здесь все, что в моих силах, довольно простые вещи. Я постараюсь сделать это как можно проще.
Итак, назовем это «наложение подписчика». Здесь я использую Preact, поэтому я собираюсь импортировать h из preact. В последних версиях этого делать не нужно, но для preact это все равно требуется. Затем я собираюсь экспортировать функцию subscriberoverlay, и мне это нравится именно так. Мне нравится экспортировать функцию, чтобы она называлась и соответствовала имени файла.Напильник футляр для шашлыка. Что это, случай Паскаля? И затем я собираюсь вернуться - давайте сейчас просто вернемся к div, и в этом div мы будем говорить о наложении подписчика. Причина этого, то, что я хочу здесь сделать, - это доказать, что она работает, прежде чем мы сделаем что-нибудь еще. Итак, я собираюсь сделать это так: давайте - это просто сгенерирует страницу, верно? Итак, если я выйду сюда и сделаю сборку Netlify, мой сайт будет построен, и вы увидите там 2,8 секунды. А затем в своей общей папке я получаю наложение подписчика.И если мы посмотрим на оверлей для подписчиков, он добавляет немного тостов, а затем - ох, это не сработало.
Почему это не сработало, привет - я облажался. Мы не можем назвать экспорт, он должен быть экспортом по умолчанию.
Итак, попробуем еще раз. Тим, а нельзя ли использовать видеоформат с прозрачным фоном? Что ж, мог, кроме этого видео, которое я снял на зеленом экране. Так что это не прозрачно. Я мог бы - я не знаю, смогу ли я, например - могу ли я просто использовать прозрачность в миле MP4 напрямую, вместо того, чтобы включать зеленый экран? То есть, я не знаю.Должны ли мы это посмотреть? Давайте разберемся. Итак, давайте посмотрим на эту страницу, прежде чем делать это. Итак, вот ... вот мой оверлей для подписчиков, и мы видим, что он вроде как подтягивает div, и здесь есть весь этот контент. Если мы посмотрим сюда, то найдем сгенерированный HTML. Вот так выглядит всплывающая страница, когда она сгенерирована. Если мы загрузим это в браузер, что я могу сделать с Netlify Dev, это будет. Я использую Netlify Dev, потому что я хочу загрузить свои переменные среды, и это просто делает это за меня, поэтому мне не нужно больше ничего делать.
Итак, то, что я собираюсь сделать, это скопировать, и давайте отправимся в путь. Хром меня убивает. Мне придется переключить браузеры. Это становится такой мерзостью памяти. Вот так. Итак, давайте отправимся сюда. Все в порядке. Итак, теперь, если я перейду к наложению подписчика, я получу свой h2, который говорит, что наложение подписчика. Итак, я действительно хочу посмотреть, есть ли способ сделать видео с - да, давайте посмотрим, если - давайте посмотрим, сможем ли мы сделать видео таким же прозрачным. Потому что было бы здорово, если бы это сработало.
Выложил ссылку. Давайте возьмем это. Собираюсь скопировать это здесь. Итак, это - хорошо, это фильтр цветности пикси. Я ничего об этом не знаю. Итак, давайте посмотрим, что он делает. О, круто, ты это построил.
Итак, моя веб-камера не является частью оверлея. Я изучал это. Прямо сейчас я делаю это так, что запускаю свою веб-камеру - мою цифровую зеркальную камеру прямо в камеру, а затем помещаю ее в прозрачную область сцен. Но на самом деле меня это не волнует. Типа, я мог бы ... у меня есть некоторые идеи, которые действительно глупые, например, с распознаванием лиц вживую, когда я мог бы позволить вам надеть на меня шляпы или что-то в этом роде.Но мне нужно просто - я доберусь туда. В конце концов, я доберусь туда. Итак, у меня есть миллион глупых идей, в которых я бы хотел покопаться. Но тогда это, теоретически говоря, позволило бы нам - где мне вообще это запустить? Так что это та часть, где я не уверен на 100%, что делаю.
Итак, пикси. Цветовой фильтр. Итак, вы говорите, что если я сделаю это, что он будет искать? Например, как мне на самом деле применить фильтр цветности, если он не принимает аргументов или это просто pixie.filter? Хм.Я чувствую, что это то, что я, вероятно, хочу изучить либо с экспертом, либо когда я не собираюсь тупо гуглить. Я бы потратил так много времени на разработку pixie JS, что, вероятно, не стану. Я не знаю, что из этого получится что-нибудь очень интересное. Но это действительно заставляет меня хотеть поговорить с командой pixie JS или pixie JS pro и посмотреть, сможем ли мы что-то сделать в шоу, потому что это уже третий или четвертый раз, когда я слышу об этом, и я никогда не использовал его. Итак, это могло бы быть очень весело.Эй, если это ты - если ты мой про пикси JS, вставь в мои личные сообщения.
Итак, давайте взглянем на ... но, да, давайте сделаем это по-своему. И, таким образом, я собираюсь сделать это прямо сейчас, когда мой оверлей находится в DropBox. Итак, давайте посмотрим на мой DropBox. Это будет ужасно. Позвольте мне открыть конкретную папку DropBox, чтобы это не было - хорошо, вот моя конкретная папка DropBox. Если вы все хотите увидеть супер-съежку, да, давай сделаем это. Посмотрим вместе.Это я пытался осуществить это. Итак, это мой зеленый экран. Это я пытаюсь - также мне пришлось все это выбросить, потому что на этой рубашке зеленый цвет. И у меня была дыра в груди, когда я действительно пытался сделать эту работу. Да, посмотри на это. Это очень плохо. Я подумал, а что, если я выйду и я, вроде бы, поставлю - отпустил буп? Это так ужасно. Они также вроде бы не в фокусе. Ага, неловкая волна. Не знаю, больше этого смотреть не могу. Так что это заняло у меня слишком много попыток.Как вы можете видеть, у меня есть четыре разных варианта того, как я пытаюсь заставить эту работу работать.
Но, в любом случае, вот что я хочу сделать с наложением здесь, глупая нижняя треть, вот как это называется. И я думаю, что это тот самый. Это тот самый. Хорошо. Итак, это то, что происходит на видео, верно? Это часть зеленого экрана. А потом я использовал - я использовал Adobe After Effects. Нет, не то. Бупы действительно были уловлены экраном экрана. Итак, в них были дыры и все такое.Итак, вместо этого я переключился на это сердце. И сердце работает. А это собственно видео. Это то, что я создал в Adobe After Effects, и каждый раз, когда я использую Adobe After Effects, мне кажется, что я впервые изучаю After Effects.
Итак, да, я надеюсь, что мы сможем снять это видео, и я думаю, что я собираюсь просто поместить его прямо в Cloudinary. Итак, я собираюсь перейти в свою учетную запись Cloudinary. И давайте посмотрим, авторизован ли я по-прежнему. Нет. Посмотрим, сколько времени у меня уйдет на то, чтобы войти в Cloudinary.Уберите это с экрана. Все в порядке. Хорошо, Cloudinary. А потом нам нужно сделать одноразовый код. Мне нравится, что теперь это встроено в один пароль. Это так приятно. Хорошо, я в своей медиа-библиотеке, и мы собираемся перейти в папку Learn With Jason. Все в порядке.
Итак, я просто собираюсь загрузить это прямо сейчас. Это довольно большое видео, поэтому я думаю, мне нужно немного его оптимизировать, прежде чем мы выложим его в Интернет, но, к счастью, я могу сделать это с Cloudinary.Итак, я назову это оверлей подписки, а затем вернусь сюда, закрою это и давайте скопируем его. Я выйду сюда и вставлю. Хорошо, я просто хочу сделать это немного более управляемым. Итак, размер, который мы показываем сейчас, давайте посмотрим, каков был размер? Это трансформация - я не думаю, что ни один из моих оверлеев показывает. У меня он, например, 573. Итак, давайте немного уменьшим его размер. Перейдем к ширине 600, установим качество и формат на авто.Что это будет делать - на самом деле, прежде чем я это сделаю, я сохраню это. Я собираюсь открыть вкладку сети, и давайте перезагрузим исходную вкладку, в которой нет ничего из этого, и давайте посмотрим на эту вкладку сети. Это не тот. Попробуем еще раз. Почему не показывается само видео? Странно, что он думает, что это ... ладно, тогда давайте посмотрим на настоящие заголовки.
Заголовки ответов говорят, что размер этого видео составляет 6,1 мега - мы можем видеть в заголовках ответов, что это только сейчас 55 килобайт. Я смотрю прямо мимо него? Сохранять данные.У тебя нет моего размера? Это похоже на ... давай попробуем еще раз. Говорят, 246 переведено. Поскольку он отправляет, он может отправлять его как потоковую передачу и не указывать мне размер, но я недостаточно знаю о видео, чтобы знать, так ли это на самом деле.
О, длина содержимого. Вот. Таким образом, он сократился до 240 килобайт по сравнению с 6 мегабайтами, которые были раньше. Это сэкономит нам массу трафика. Итак, вот что я хочу сделать, так это просто показать это видео, и давайте сделаем - вообще-то, я думаю - могу ли я уйти, просто создав здесь исходный код? Давайте разберемся.Эксперты по специальным возможностям, как правильно обозначить это? Я помещаю это внутрь как описание видео? Или есть тег - вы не добавляете альтернативный текст к видео, не так ли? Может быть, название. Кто знает.
Кто-нибудь подскажите. Я посмотрю, если мне никто не скажет. Но это даст нам ... наше видео здесь с источником. И если я скажу - давайте снова запустим это. Это правда, Роберт. На самом деле никто не будет смотреть на это, но это не значит, что мы не должны этого делать, верно? Мы все еще должны хотеть - это должно быть нашей привычкой - всегда делать все правильно.
Видите, текст внутри должен быть в порядке, - говорит Принс. Вы можете сделать метку, заголовок или рисунок рис. Думаю, название мне кажется правильным. Итак, давайте сделаем заголовок. Мы опустим это и скажем, что крошечный Джейсон выходит на экран и в восторге. Это правильное слово? В восторге от множества парящих сердечек. И я оставлю это пустым. Хорошо. Итак, теперь у нас есть небольшой видеоролик. У Cloudinary есть видео - нет, что? Это будет потрясающе. O
ч, это было бы намного проще, чем все эти вещи, которые я собирался делать.Функциональность работает как эффект зеленого экрана, но может быть применена к любому шестнадцатеричному цвету, но сработает ли он, чтобы все снова стало прозрачным? Сделайте цвет в оверлее видео, примените эффект прозрачности и параметр цвета. Хорошо. Параметр make transparent поддерживается только для видео с наложенным компонентом. Вы не можете применить этот параметр к видео без наложения. Типа, я мог отображать экран внутри видео, но я не мог поместить, типа, я не мог поместить то, что внизу, в этом нижнем углу здесь.
Типа, этой части не было бы видно. Вы вообще видите мою мышь здесь? Это показывает. Позвольте мне сделать это. Я не могу сделать эту часть видимой здесь, потому что видео не знает об этом, когда делает эту прозрачность, и, насколько я могу судить, не обеспечивает фактической прозрачности. Я знаю, что есть видеоформаты, которые с этим справляются, я просто не думаю - хм, да, я не думаю, что это сделает то, что нам нужно. Крис поделился ссылкой на которую сейчас? Итак, да, Кесор, я понимаю, что ваш пост - давайте посмотрим на это, потому что я хочу увидеть, будет ли это делать то, что мы хотим.Res.cloudinary.com. Это демо. Итак, здесь происходит несколько вещей.
Итак, у нас есть наложение видео, которое происходит с часами с синим экраном, и мы применяем эффект прозрачности и какой цвет, а затем за ним стоит другое видео, волны заката. К сожалению, это означает, что мы не можем использовать эту функцию. Итак, вместо этого, да, Webm поддерживает альфа-канал, который, вероятно, подойдет мне. Я не знаю. Но, да, я думаю - я не знаю, да, в основном вот как я к этому отношусь.Я точно знаю, что есть лучший способ сделать то, что я собираюсь сделать. Чего я не знаю, достаточно, чтобы сделать это в рамках имеющихся у нас временных ограничений. Потому что я хочу сделать это в течение следующих 50 минут.
Итак, я знаю, что могу заставить эту веб-страницу работать так, как я хочу, и это позволит мне использовать инструменты OBS. Так что я думаю, да, то, что сказал Бобби Тейл. Я могу отправить его и потом починить. И я был бы очень признателен, если бы кто-нибудь знал лучший способ. Например, откройте проблему в моем репозитории сцен и дайте мне знать.Я не только буду очень признателен за это, но мы также позаботимся о том, чтобы все это получило признание и все такое. Мы обязательно будем кричать об этом с крыш, потому что все, что облегчает мою жизнь и помогает мне учиться, - это то, что я очень ценю. Итак, то, что я собираюсь сделать, находится здесь, я собираюсь взглянуть на то, как мы получаем - просто собираюсь скопировать / вставить сюда кое-что. Итак, я собираюсь получить шлем React. Мне нужна таблица стилей. То, как я делаю таблицы стилей, заключается в том, что я бросаю их прямо вот так.
Итак, мы собираемся создать таблицу стилей для ссылки rel и дать ей href - где я разместил все остальное? Стили. И поэтому мы назовем его styles / subscriber-overlay.css. Это означает, что мне нужно создать оверлей для подписчиков. Так что где-то здесь статика. Вот. Я собираюсь создать новый файл. Назовите его subscriber-overlay.css. Является ли div избыточным? Да, наверное. Я собираюсь использовать его как соотношение сторон, и это позволит мне установить конкретный размер div, что позволит разместить видео.Наверное, мне не нужно что-то делать. Наверное, это то, что мне сойдет с рук, потому что я не собираюсь быть суперкроссбраузерным. Но вот в чем дело. Я намерен сделать все это доступным для людей, кроме меня. Я пытаюсь собрать набор стримеров, где вы можете создать веб-сайт, который будет действовать как весь ваш набор стримеров, и вам нужно будет использовать только некоторые перехватчики React, чтобы получать события, и, например, вы можете написать немного CSS, чтобы это сделать смотри как хочешь. Я хочу, чтобы это было очень просто.Это действительно похоже на потоковую передачу Elements, но я хочу, чтобы она проходила полностью через Интернет. Элементы потока, я чувствую, что они дают вам внутренние и - виджеты, и вы должны прикреплять виджеты на странице. Я надеюсь, что все, насколько это возможно, будут частью одного веб-сайта. Если вам нужны виджеты, мы убегаем, чтобы получить особую функциональность, но в этом не было бы необходимости, в этом не было бы необходимости.
Итак, я собираюсь создать оболочку. Дадим этому более конкретное имя. Subscriber-overlay-wrapper, и мы дадим этому - ему не нужен блок отображения, не так ли? Ему просто нужно положение относительное.Мы зададим ему ширину. У меня был 573. Дадим четный номер. Сделаем 600. Затем я хочу, чтобы высота была такой же, как высота видео. Он покажет мне вот здесь, какая высота? Да, 336. Хорошо. Итак, дайте ему высоту 336. И тогда видео назовем его позицией: Абсолют, и оно получит ширину 100%. Высота 100% и верх: 0, слева: 0. Тот факт, что я не отсортировал их по алфавиту, меня беспокоит. Знаешь что? Я намерен стать лучше в 2021 году.Я не буду об этом беспокоиться. Итак, теперь у нас есть наши стили, и мы втягиваем их. Это означает, что мне нужно дать этому класс. И вот кое-что, что мне действительно нравится в preact, вам не нужно писать имя класса, вы можете просто написать «class». Если бы мы были в чистом реагировании, нам пришлось бы сделать это так, но preact не заботится. Он сделает это за вас. Я могу сделать подписчик-оверлей-обертку.
Итак, теперь я эффективно пишу HTML, что меня очень радует. Подождите, это просто работает? Подожди.О, я должен выбрать все это. Вот так. Смотри. Наблюдайте за этой магией. Сортировать строки по убыванию. Ой, подождите, отсортируйте строки по возрастанию. Вау, это намного проще, чем то, что я делал раньше. Я всегда здесь и говорю: «О, давай сделаем это вот так». Ладно, тогда - видите ли, вы - помощник. [Смех] Хорошо. Итак, теперь у меня ... у меня настроено наложение для подписчиков, и то, что я делаю с нашими стилями здесь, на самом деле, ох, вы знаете, что я собираюсь делать? Сделаем эту штуку шириной всегда на 100%. Итак, я возьму свой калькулятор очень быстро, и мы скажем, что 336/600 - 56.
Итак, это наше соотношение сторон. Здесь мы можем проделать очень приятный трюк. Я собираюсь установить padding-bottom на 56%, а затем я установлю ширину на 100%. Итак, то, что мы только что сделали, - это контейнер соотношения сторон. Высота установлена на 0, потому что высота зависит от высоты. Отступы справа, слева или снизу зависят от ширины контейнера. Итак, если я знаю, что мой контейнер имеет высоту 56% от любой ширины, я могу установить padding-bottom на 56%, и это поле всегда будет иметь одинаковое соотношение сторон, независимо от его ширины.
Итак, давайте посмотрим, правильно ли я сделал, и мы можем остановиться, начать снова. А теперь, если я выйду сюда, давайте взглянем и посмотрим, что я наделал. Итак, мы идем. Хорошо. Итак, теперь у нас есть ширина и высота. Здесь у нас есть пара проблем. Обратите внимание, что это не играет. Итак, я облажался. Но я могу это исправить. Это приведет к удалению глобального поля, так что оно не будет таким образом ограничено. Затем я установлю автоматическое воспроизведение. Но в HTML в Chrome вы не можете автовоспроизвести без отключения звука.
Итак, я собираюсь остановиться и перезапустить. И, вроде бы, в этом видео все равно нет звука, так что это не имеет значения. Хорошо. Итак, теперь, когда мы перезагружены, у нас все готово. Он делает то, что мы хотим, безупречно, верно? И это именно то, что мне было нужно, потому что я собираюсь изменить размер этого - например, этого наложения, я собираюсь изменить его размер, но я хочу, чтобы наложение соответствовало тому размеру, который я его установил. Итак, это - это то, что я здесь ищу. И похоже, что он играет только один раз.На самом деле меня это совершенно устраивает. Невозможно автоматическое воспроизведение в строке без воспроизведения в строке. Да, вы можете полностью отбросить ссылки, только не спамите ссылками. Ох, Энди связан с соотношением сторон, что мне нравится, но, насколько я знаю, пока не работает. Давайте взглянем.
Значит, соотношение сторон будет крутым, как только мы его получим, верно? Потому что, когда у вас будет соотношение сторон, мы сможем установить - о, это круто. Подождите, это - это медиа-запрос. Разве нет атрибута CSS для соотношения сторон, где вы просто можете установить соотношение сторон чего-либо? Да, это очень круто, но это не совсем то, что мы хотим.Но об этом нужно знать, поэтому я сделаю ссылку на это в примечаниях к выставке. Но то, что мы собираемся сделать здесь, это я собираюсь - давайте возьмем это, и, знаете, я думаю, что на данный момент этого может быть достаточно. Есть еще один шаг, который я хочу сделать: я собираюсь задействовать события и показать это наложение, основанное на разных событиях. Но для начала я хочу, чтобы эта штука появилась в стриме. Итак, опубликуем.
Итак, поехали. Получите добавить. Все добавлено. Я собираюсь получить фиксацию, и мы скажем, что функция добавлена - это работа в стадии разработки.
Добавить оверлей подписчика без подписи. И тогда мы сможем подтолкнуть. Хорошо. Итак, это - давайте откроем - откроем Netlify, и мы просто посмотрим, как это строится очень быстро. Вот наши сцены. Ники получил временную зону. Я знаю, знаю, знаю. Кесор, да, это следующий шаг.
Итак, мой первый шаг - получить это и убедиться, что цветовой ключ работает, а затем я собираюсь настроить его на фактическое прослушивание этого события и отображение / скрытие. Я не могу указать свой локальный хост на OBS, потому что я нахожусь на двух компьютерах.Стриминг происходит на моем ПК, а работа, которую я делаю, - на моем Mac.
Итак, я фактически транслирую свою работу Dev на свой рабочий стол. Я мог открыть туннель и сделать много чего. Это строится так быстро. Здесь мы закончили за 40 секунд. Я не чувствую, что дополнительная настройка не стоит того. Не думаю, что вы это видите. Я собираюсь настроить исходный код браузера в OBS, и я собираюсь добавить источник, создать новый источник, и мы назовем это - о, убери мой микрофон. Посмотрим, наложение подписки на Socket Studio.И ссылка на это будет - мне нужно это найти. Давайте посмотрим. Https: //lwj-scenes-toast.netlify .app / subscriber-overlay / И тогда я собираюсь установить его шириной 336 пикселей. Это правда? Хорошо. 336. И давайте просто бросим эту штуку прямо сюда. Мы это видим. Итак, я собираюсь выключить этот другой. Этому следовало переехать. Вы попали в нужное место.
Итак, мы собираемся приклеить это и поставить вплотную к основанию. Хорошо, теперь у меня есть это там, где я хочу.Это не играет. Это совсем другое, что мне нужно выяснить, но давайте посмотрим. Неисправность. Используйте настраиваемую частоту кадров. Все это должно работать. Не знаю, почему это не так. Посмотрим, работает ли на нем этот фильтр цветности. Я собираюсь добавить фильтр и свой зеленый экранный фильтр, который где-то здесь. Ладно, похоже, правильно. Итак, позвольте мне перейти к другому экрану, чтобы это не так запутанно.
Итак, мне это кажется правильным. Я думаю, нам нужно, чтобы уменьшение цвета немного увеличилось или уменьшилось.Я бы хотел, чтобы он играл, чтобы я мог видеть. Давайте назовем это - так, теперь нам нужно выяснить, почему он не играет, и я предполагаю, что он не играет, потому что что-то не делает то, что я хочу, и я не знаю, может быть, он не играет то типа видео что ли. Мол, может мне нужно заставить его быть mp4. Хм, не знаю. Для этого потребуется атрибут слитка петли. Ах, да. Хорошо, давайте попробуем цикл. Был ли другой встроенный автозапуск? Это вещь? Хм, хм, хм, хм, хм. Я не знаю.Это не похоже - играет в линию. Хорошо. Все в порядке. Давайте просто отправим это и посмотрим, что произойдет. Все в порядке. Итак, теперь мы продвигаемся.
На самом деле, пока мы ждем, пока это будет построено, вы можете увидеть - зайдите на этот сайт - вот что мы будем делать. Перейдите к деталям развертывания, вот моя сборка. Пока это строится, у нас также есть новый эпизод, который вышел в эфир вчера. С Ортой. Мы сделали Typescript, я многому научился. То, что было очень догматично, но на самом деле было довольно безболезненно зайти и просто использовать.
Итак, это развернуто. Так что давайте перезагрузим его. Там идет. Играет. Смотрите, все. Хорошо, это веб-сайт.
Сейчас мы воспроизводим нашу подписку с веб-сайта, и теперь она будет зацикливаться, потому что мы установили для нее этот цикл. И на самом деле меня это устраивает. Итак, я думаю, что хочу здесь сейчас, чтобы эта игра воспроизводилась только тогда, когда кто-то подписывается. Итак, что я собираюсь сделать, я собираюсь приступить к ... давай взглянем на чат. Чат работает так, что он использует чат Twitch, верно? И тогда мне это тоже понадобится.Итак, давайте скопируем оба из них, вернемся в оверлей для подписчиков и сделаем одно из них. Хорошо.
Итак, теперь, когда у меня есть это, я хочу использовать вместо него события. Итак, это работает как подписка GraphQL. Подписка GraphQL - это то, что я создал - она просто слушает TMI.JS, который является своего рода библиотекой событий Twitch, а затем преобразует это в событие подписки GraphQL. И я провожу некоторую нормализацию этого и прочего, чтобы мне было немного легче анализировать эту информацию, но что мы можем сделать, так это давайте сделаем это.Давайте продолжим, а пока я собираюсь провести события console.log. И это будет немного сложно, потому что единственный способ действительно проверить это - подписать людей, что, вероятно, не очень практично. Поскольку, вы знаете, хотя я был бы очень признателен, если бы все захотели пойти и получить… захотели пойти и получить подписку, я также знаю, что это, вероятно, не самая практичная вещь в мире.
Но давайте сделаем это. Запустим локально. И, возможно, что мы можем сделать, так это найти суперактивный игровой канал, на котором, примерно, 80 000 человек, и вместо этого подписаться на него, чтобы получить некоторые подробности.Итак, вот и моя консоль. Это ведение журнала? Вот наши события. Итак, наши события теперь нулевые. Итак, вместо этого я собираюсь найти кого-нибудь на Twitch, который будет очень активен. Собираюсь просмотреть, если я могу написать это по буквам.
Что это? Это не то, что я - каталог, это то, что я хотел.
Итак, перейдем к живым каналам, по убыванию. Кто-нибудь прямо сейчас, многие люди будут подписываться на LVNDMARK. Я подозреваю. Давайте перейдем к делу. Давайте посмотрим, что происходит с обработчиком событий.Это совершенно новое. Я написал этот код вчера, может быть, два дня назад, и я достаточно уверен, что он работает, но не положительно. Итак, посмотрим. Он что-нибудь делает? Я также не знаю, как часто кто-нибудь подписывается на что-то другое. Я предполагаю, что это сработает, но, да, вы знаете, это, наверное, лучше - я должен сказать, что это так. Просто чтобы убедиться, что я не использую версию Cache или что-то в этом роде. Давайте восстановим это. Выйти здесь. Откройте это. И жестко освежить.
Хорошо, у нас есть события LVNDMARK.Теоретически это должно дать нам некоторую информацию. Знаешь что? Вчера я играл в быстрые игры, и на самом деле они были более активными. Итак, давайте попробуем вместо этого быстрые игры и посмотрим, что из этого получится. Надеюсь, проблема в том, что он просто не активен, а не в том, что, типа, эта штука просто активно ломается. Это было бы обломом.
Что-нибудь? Бьюллер? Заглянем в их канал. И он приглушен. Найдите подмену, а затем посмотрим, появится ли она.
Я немного это вчера посмотрел.Они играли в Аида. Я играл в Аида около часа.
Я социальный игрок. Я играю в Fortnite. Я научился играть в Майнкрафт с Линдси Левин.
Могу я сделать это один раз? Могу я прайм? Как мне подписаться на Prime? Я - мужчина. Все в порядке. Я собираюсь не забыть разобраться с этим. О, Боже, я не ввожу свои данные. Нет, я этого не делаю. Я думал, что это уже сохранено здесь. Что бы ни. Убирайся отсюда.
Хорошо, это не то, что я хочу. Если подарить одну подписку, у нас должно быть мероприятие, а у нас нет, а это значит, что оно не работает.Подарил это ... да, может быть, подарки проявляются по-другому. Тем не менее, это должно отображаться так же. Один саб. Может быть, еще слишком рано для такого рода вещей. Хорошо. Итак, вот что мы будем делать.
Я собираюсь - давайте вернем это мне. Хорошо. Итак, займемся этим. Я собираюсь закрыть - давай снова откроем, и я сделаю две вещи.
Во-первых, я собираюсь открыть мероприятие на Twitch, хорошо, я хочу ... ой. Печатайте и давайте подробности, верно? А потом у нас есть команда Twitch, чат Twitch и прочее.Давайте пока оставим это. Итак, я собираюсь начать это. Давайте перезагрузим, чтобы все было ясно. Хорошо. Итак, это отслеживание. А еще у меня есть вот этот, который транслирует мои события. А теперь я собираюсь - я думаю, что я действительно вошел в систему. Причина, по которой мои данные не указаны здесь, заключается в том, что я вошел в систему как Socket Studio, поэтому давайте подпишемся на Socket Studio и посмотрим, что произойдет.
Так что терпите меня, пока я буду вводить детали. Итак, подписываемся. Я собираюсь сделать все это.Я собираюсь ввести подробности. Это сработает? Давай, сделай это. Сделай дело. Это не поможет. Хорошо. Ну давай же. Хорошо. Это - давай. Почему все так сложно? Один из них, один из этих и один из них. И это даст мне покупку. Сделай дело. Заканчиваю покупку. Почти - хорошо. Все в порядке. Итак, вот подводная лодка. Он должен появиться здесь.
О нет. О нет. О нет. О нет. О нет, это тоже - не слишком ли далеко вниз? Нет! Фольгированный. Давайте посмотрим. Мы должны суметь это получить.Ой, подожди. Да, это не помогло.
Ладно, что-то ... что-то не так, да? Мол, что-то делает не то, что я хочу, а это не весело. Все в порядке. Итак, да, как кто-то предложил, давайте переключим его, и вместо использования событий мы будем использовать текущую команду, и давайте дважды проверим ее, чтобы мы могли остановить и перезапустить. Хорошо. И тогда мы можем - пойдем сюда. Перезагрузить. В нем говорится, что текущая команда не определена. Давай запустим эту штуку. О мой Бог. Хорошо.
Вы знаете, почему не работает? Это не работает, потому что я не добавил поставщика контекста.
Jeebus. Хорошо. Давайте заставим эту штуку действительно функционировать.
Итак, это React, верно? Вы не можете просто использовать крючок, вы должны применить вещь - вещь, которая делает вещи. Эта штука делает все остальное. Итак, я собираюсь - я так расстроен из-за того, что не подумал об этом.
Хорошо. Итак, мы собираемся бросить это здесь. Мы собираемся отбросить это с другой стороны. А затем мы переместим все это в компонент, который мы пока здесь просто придерживаемся.Итак, мы вызовем эту функцию video и вернем ее, а затем мне нужно переместить эту часть сюда, чтобы она была внутри этого компонента, потому что нам нужно, если мы делаем поставщик контекста, контекст должен находиться за пределами компонента. называя это. И это - значит, мне нужно это получить. Верно? Итак, давайте все это получим. И мы бросим это сюда. И тогда нам нужно это создать здесь. Хорошо. И потом я не думаю, что мне нужно что-то еще. Нет, у нас там все хорошо, так что давайте спустимся и зайдем к клиенту.Хорошо. Итак, теперь теоретически, мы хоть что-то получим, правда?
Итак, попробуем еще раз. Я обновлю страницу. Обновите страницу. Ничего не происходит. Что-то сломалось?
Покажи мне картофельный салат.
Ничего не показываю прямо сейчас. Что я ... вы хотите знать, что я сделал, вы? Ой, мальчик. Просто действительно - просто действительно поддался панике из-за живого кода, верно? Ну давай же. Хорошо. Посмотри на это. Итак, мы идем. Мы получаем команды. Все в порядке.
Итак, это здорово.Это то, что мы искали. Мы получаем команду. Это показывает нам, что делается. Это привлекает всех. Так что это хорошие новости. Итак, еще одна вещь, которую мы можем попробовать, - это я просто помещу сюда события. Давайте по-прежнему запускаем текущую команду, но если кто-то, кто не подписан, думал, что, знаете, это именно тот контент, который мне нравится. Мне нравится наблюдать, как кто-то в течение полутора часов пытается написать что-то, что они определенно построили раньше. Это именно то - сейчас самое время, не так ли? Приготовьте эти дополнительные деньги.Позвольте мне перезапустить эту штуку, поехали. Итак, теперь, когда мы здесь, он должен показать наш массив событий, у нас есть текущая команда. Так что, если кому-то нужно - массив событий, да. Так что, если кому-то - телемарафону «Учись с Джейсоном» нужна твоя помощь. Нам не хватает всего одной подписки до нашей цели.
Давайте сделаем это. Я собираюсь.
Нет, принц, я думаю, что мои подарочные сабвуферы не работают, но большое вам спасибо.
Хорошо, мне нужно выяснить - в Twitch многое входит - например, у Twitch есть не только подписки.Есть Twitch - это интересно. Он возвращается, даже когда его нет - это увлекательно. Я не понимал, что чат заставил его перерисовать. Это означает, что мне, вероятно, нужно быть осторожным с тем, как мы это делаем. Но в конечном итоге мне нужно пройти и найти все различные IRC-события, связанные с их подпиской, подарочной подпиской, повторной подпиской, основной подпиской. Там есть еще несколько, и мне нужно обязательно прислушаться и убедиться, что они появляются должным образом.Twitch API не упрощает задачу, как мне кажется.
Ага, их много. Их просто много. Мне бы очень хотелось, чтобы мне просто дали API подписки GraphQL, чтобы мне не пришлось писать все это самому, но мы еще не достигли этого. Мы можем мечтать, правда? Но, да, да, да, почему бы нам не пойти дальше. Ооо, мы поняли? Это появилось? Это сработало? Ну давай же.
Чувак, я не знаю, что я сделал не так. Я что-то сломал. Ладно, в любом случае. Поиграем с этим в команде.
Итак, мы сможем вызвать его, например, одной из команд. Итак, что я собираюсь сделать, это настроить - и, кстати, извините, я подумал, что это не сработало. Большое спасибо за подписку.
Принц, спасибо за подарочный саббинг. Большое спасибо. Я действительно ценю это.
Я только что понял, что я здесь как придурок, валяющийся в своей собственной неспособности не заставить события работать и не ценящий, сколько любви вы все проявляете ко мне.
Итак, мы получим эту текущую команду.Что я хочу сделать, так это, если мы посмотрим на текущую команду, и почувствуем, что она определена. Я собираюсь бегать по одному очень быстро. Итак, вот моя текущая команда. Почему звук не играл с этим? Я что-то напортачил? Что бы ни. Давайте.
Гм. >> О, вот оно что. Теперь он занимается чем-то.
И я не хочу этого делать. >> Может нужно было загрузить. Я не уверен, что это было. Но, так что, когда это выйдет, я просто хочу проверить текущую команду.команда, чтобы убедиться, что что-то действительно изменилось. В конечном итоге это будет перезаписано. И что я собираюсь сделать, так это импортировать. Используйте эффект от preact / hooks, и мне также понадобится состояние, потому что мне нужно видеть, видно ли оно.
Итак, давайте начнем говорить: const visible, set visible, use state и default в false. Что касается нашего эффекта использования, я собираюсь использовать нашу функцию, и эта функция будет искать текущую команду command. Если команда не изменится, моя задача - использовать события подписки.Итак, что он будет делать в будущем, так это проверять, изменилось ли имя подписчика, чтобы мы не спамили события, если я каким-то образом зациклился. Но вместо этого мы можем сделать следующее: когда команда изменяется, мы можем сказать - или на самом деле, может быть, мы хотим использовать время, потому что возможно, что в этом сценарии кто-то может запустить ту же команду, но это будет другое событие . Итак, давайте вместо этого воспользуемся временем. Итак, что я собираюсь сделать здесь, я скажу «установить видимую истину», а затем мы установим тайм-аут.Допустим, мы собираемся запустить это - я не знаю, как долго это видео? Как долго длится видео?
Давайте проверим. Это 11 секунд. Хорошо, давайте запустим его на полные 11 секунд. Нет, назовем его 10, потому что он, вероятно, закончится немного раньше, и я не хочу неловкого цикла. И тогда мы установим видимое значение false. И я, вероятно, захочу очистить это, чтобы постепенно появляться и исчезать, но пока я счастлив, не так ли? Мол, этого будет достаточно, чтобы доказать, что то, что я хочу, происходит.И тогда мы можем сказать «видимое &», и я имел в виду не это. Итак, мы идем. Итак, мы идем. Хорошо, давайте попробуем и посмотрим, что произойдет. Итак, я собираюсь запустить Netlify Dev. Я собираюсь - что тебе не нравится? Что я пропустил? Я что-то упустил. Не повторение неустановленного. В этом есть смысл. Итак, вместо этого я сделаю const, например, время команды равно currentcommand и current command.time или false. Я бы хотел использовать нулевое объединение или необязательный оператор цепочки, но оверлеи здесь используют фреймворк, встроенный в хром, который не поддерживает необязательную цепочку, что вроде облом, но это нормально, неважно.
Итак, мы установим здесь время команды, и тогда то, что я сделаю, будет ложным, я просто вернусь, чтобы ничего не делать, если нет набора команд. Итак, это должно решить эту проблему. Давайте посмотрим. Итак, теперь, если мы перезагружаем, он делает то, что мы ожидаем. Кто-нибудь посмотрим, смогут ли они это спровоцировать. Выполните команду. Все в порядке. У нас есть эмоция от поезда. Спасибо. И еще раз спасибо всем. О, посмотри на это. Да! Итак, теперь это означает, что это должно, должно быть, должно быть рабочим словом.Вы видели, как он сделал то, что я хочу? Посмотри, как чертовски медленно работают оверлеи? На самом деле, это своего рода волшебство. Да, так, в любом случае - но что мы можем сделать - вы можете видеть, что здесь не очереди и все такое. Я должен обдумать это, потому что одна из вещей, которые я заметил, что вызывает массу хаоса в потоке, - это когда кто-то дарит десять субтитров, и у вас есть десятисекундная анимация подписки, есть звуковые эффекты и прочее. В итоге вы получите полторы минуты звуковых эффектов и хаоса, верно? И это может - я видел, как это сорвалось, верно?
И я думаю, что есть способ, которым это могло бы быть действительно весело, но я также думаю, что есть, я не знаю, кто знает.Но, да, так что давайте - что мы можем сделать? Давайте его развернем. Git commit. Оверлей должен срабатывать по командам. Давайте продвинемся, а затем мы сможем взглянуть на эту сборку. О, нам действительно нужно добавить код. Да, это называется хромированный каркас. Это то, что скрывается под капотом OBS. Итак, это - и я не уверен на 100%, что это такое или это. Но я обнаружил, что когда я его построил, он работал во всех браузерах, например, он будет работать в Safari, Edge, Firefox и Chrome. Когда я открывал его в OBS, он просто терпел неудачу.Пришлось разобраться, как отлаживать OBS. Оказывается, вы можете добавить флаг. Есть много контента, который нужно создать и написать об этом, потому что это всего лишь куча. Но, да, в конечном итоге это основано на Chromium. Это вилка? Давайте смотреть. Таким образом, он позволяет встроить браузер в приложение, поэтому он полезен для OBS.
Чего я не знаю, так это того, что я не знаю, официальный ли это проект. Я думаю, это не так. И, знаете, это открытый исходный код, и поэтому я думаю, что он немного отстает по полноте функций.Но, да, вроде того, я думаю - я думаю, что это сработало. Вы сделали? Да, да, хорошо.
Итак, давайте обновим это здесь. Я обновлю кеш. Хорошо. Он все еще там, но не играет. Кто-нибудь выполнит команду, и мы должны увидеть, как я выхожу на экран. А? А? Кто угодно? Бюллер. Итак, мы идем. Посмотри на это. Посмотри на это. Да! Хорошо, посмотри на это. У нас это работает.
Гм. >>
Меня немного смущает конфликт звука, и я не знаю почему.Итак, мне нужно разобраться в этом и выяснить, что там произошло, но это довольно гладко, не так ли? Итак, теперь, если мы все перестанем выполнять команды, что должно произойти, это должно быть очищено. Итак, давайте попробуем и посмотрим, что из этого получится.
Так что я думаю, что Холибакетс был последним. Держитесь пожалуйста. Это случится снова.
Мне нужно избавиться от погони, Чан. Как только это закончится. Там идет.
Подписки больше нет. Мы сделали это. Мы создали оверлей, который работает на основе веб-событий.Итак, это веб-сайт. Это встроенная веб-страница. Он использует хроматический ключ. Если мы отключим хроматический ключ, и я смогу сделать это очень быстро. Выключим фильтр. Кто-нибудь, запустите это для меня еще раз.
Священные ведра, это просто сработало? >>
Итак, если мы запустим один из них. Да, видите ли, хроматический ключ отключен, так что теперь это гладко. Я так взволнован этим, потому что он просто делает то, что нам нужно. Сотрудничает. Он отображается правильно. Мы получаем эффект ухода.И вроде бы мое вдохновение для этого. Если нет - если это просто похоже на то, что я придумал, это определенно не так. Я - это то, что входит в нижнюю часть экрана - когда кабельное телевидение было непрерывным потоковым вещанием, и у вас были шоу в прайм-тайм и прочее, у них всегда был ситком, где во время ситкома у них были персонажи. из другого другого комедийного сериала выйдите на дно. Они толкались и улыбались друг другу, и они были бы такими - да? И это была действительно тупая штука, когда каждый раз, когда я ее видел, меня передергивало.
Вот я, естественно, подумал, что для этого стрима он нам нужен. Мы должны были это иметь.
И я долгое время пытался придумать забавный способ делать подписки, и это первый способ, который, как мне казалось, я действительно мог выполнить. Другие, которые я хочу создать, в конечном итоге будут существовать, но они немного более амбициозны и потребуют немного больше времени. Но, да, уф, я так рад, что у нас все получилось в отведенное время.
Всем, какой прекрасный день.
Я так рад, что вы все пришли помочь мне ненадолго забыть о моих проблемах, немного снизить стресс, и всем, давайте - на самом деле, давайте еще раз коротко напомним спонсоры. Итак, чтобы - большое спасибо за спонсирование этого шоу.
Спасибо Джордану из White Coat Captioning, который усердно создавал субтитры в реальном времени на протяжении всего шоу, и помните, что это доступно в видео - например, в воспроизведении видео, если вы пойдете и посмотрите.Все стенограммы здесь. Так что вы всегда можете получить эту стенограмму. Это доступно вам.
И, знаете, для меня очень много значит то, что компании готовы вмешаться, чтобы сделать это шоу более доступным. Так что не забудьте проверить расписание. У нас такой забитый январь. Это будет так весело. Мы собираемся ... о, да, ты все еще здесь. Мы собираемся изучить React во вторник, поэтому, если вы хотите вернуться, мы собираемся познакомить вас с Али Спиталом.Она потрясающая. После этого Скотт Мосс будет преподавать Next. Если вы не видели контента Скотта Мосса, он - электростанция. Он научит нас делать Next. Итак, после того, как вы изучите React, это даст вам основы для понимания того, что Next добавляет поверх реакции. Мы собираемся вернуть Бена Хонга, моего хорошего друга, чтобы он помог нам изучить Vue Composition API. Мы собираемся узнать, как получить работу в сфере технологий.
Какой месяц. Все это проверяют. Отметьте свои календари. Вы можете в любой момент узнать о добавлении расписания с Джейсоном в календарь Google.Он не будет отправлять ваши оповещения или что-то в этом роде. Это просто даст вам знать, что это происходит, чтобы вы не пропустили серию. Это поможет с проблемами часового пояса. Ники попал в беду сегодня, потому что думал, что это произошло через час. Это не то, что случилось. Вот как это работает.
Так что все равно. Я знаю, что сейчас все странно. Я знаю, что 2021 год, возможно, не начнется с того старта, на который мы надеялись, но давайте скрестим пальцы, что сейчас темнота перед рассветом, верно? Как всегда, большое спасибо за то, что вы встретились, и увидимся в следующий раз.
HTML-оверлеев
HTML-оверлеев ОверлеиXUL - отличная особенность отличного приложения Mozilla. платформу, а теперь Лоран Жуано и Дэниел Глазман создал версию для HTML используя Javascript, чтобы сделать легкую работу.
Идея состоит в том, чтобы удалить элементы навигации и другие части HTML. документ, который повторяется на нескольких страницах, и поместите их в отдельно скачиваемые файлы, которые можно кэшировать и комбинировать с остальное содержимое страниц браузером.Тег ссылки используется для указания какие наложения использовать, а сценарий Javascript используется для получения накладки и вставьте их в документ. Идея хорошая и надежная реализация, основанная на проверенной технологии XUL накладки.
Обратная совместимость
У меня проблема с обратной совместимостью реализации. Без Javascript браузер не загружает оверлеи, и вы теряете ваши элементы навигации, не только плохие для тех, у кого отключен JS но и для Google.
Как насчет того, чтобы вместо XML использовать HTML, идентификатор в файле наложения совпадают с идентификаторами в нашем основном документе, а остальная часть HTML игнорируется Javascript. Таким образом, мы можем использовать другой механизм чтобы включить наши оверлеи, если Javascript отсутствует (iframes, object теги, простая гиперссылка), и они читаются людьми во всех браузеры.
Это может частично лишить возможности гибкости и не отвечает на все вопросы вопросы, но лично я думаю, что это был бы более разумный способ ввести HTML-наложения.
Проблема в том, что нам все еще нужно разобрать наш HTML. Полезный вещь об использовании XML заключается в том, что XMLHttpRequest проанализирует его и вернет у вас хорошее дерево DOM. Мы могли бы отправить наш HTML-оверлей как XML в XMLHttpRequests и как HTML для обычных запросов, но это делает вещи грязный и добавляет нежелательной сложности. Mozilla и последняя версия Opera предоставляет нам объект DOMParser, который мы можем использовать для преобразования нашего HTML строку в дерево DOM, но это не помогает пользователям IE.
Лучшее решение
Лучшее решение, которое я могу придумать, - добавить новый элемент
в
наши HTML-наложения, чтобы их было легко извлечь с помощью обычного
выражение.Браузеры, отображающие HTML, проигнорируют его, а наши
Javascript для захвата оверлеев из HTML будет быстрым и простым.
<наложение>
Это содержание в оверлее.
Я разместил демонстрацию своей версии HTML-оверлеев в действие.
Persistent Overlays - Singularity container 3.5 документация система на неизменяемом контейнере только для чтения для иллюзии доступ для чтения и записи.Вы можете запустить контейнер и внести изменения, и эти изменения хранятся отдельно от базового образа контейнера.
Обзор
Постоянное наложение - это образ каталога или файловой системы, который «находится на top »вашего неизменяемого контейнера SIF. Когда вы устанавливаете новое программное обеспечение или создавать и изменять файлы, в которых будут сохранены изменения.
Если вы хотите использовать контейнер SIF, как если бы он был доступен для записи, вы можете
создать каталог, образ файловой системы ext3 или встроить файл ext3
системный образ в SIF для использования в качестве постоянного наложения.Тогда ты можешь
укажите, что вы хотите использовать каталог или изображение в качестве наложения на
время выполнения с опцией --overlay
или --writable
, если хотите
использовать оверлей, встроенный в SIF.
Если вы хотите внести изменения в изображение, но не хотите, чтобы
сохраняться, используйте параметр --writable-tmpfs
. Это сохраняет все изменения
во временной файловой системе в памяти, которая удаляется, как только
контейнер завершает выполнение.
Вы можете использовать постоянные оверлеи с помощью следующих команд:
-
пробег
-
исполнительный
-
оболочка
-
экз.начало
Использование
Чтобы использовать постоянное наложение, у вас сначала должен быть контейнер.
$ sudo singularity build ubuntu.sif библиотека: // ubuntu
Наложение образа файловой системы
Вы можете использовать такие инструменты, как dd
и mkfs.ext3
для создания и форматирования
пустой образ файловой системы ext3, содержащий все изменения, внесенные в ваш
контейнер в одном файле. Использование файла оверлейного изображения делает его
легко транспортировать ваши модификации одним дополнительным файлом
вместе с исходным образом контейнера SIF.
Рабочие нагрузки, которые записывают очень большое количество маленьких файлов в наложенное изображение, а не каталог, также быстрее в HPC параллельные файловые системы. Каждая запись - это локальная операция внутри один открытый файл изображения и не вызывает дополнительных метаданных операции с параллельной файловой системой.
Чтобы создать файл оверлейного изображения с 500 МБ пустого пространства:
$ dd if = / dev / zero of = overlay.img bs = 1M count = 500 && \ mkfs.ext3 overlay.img
Теперь вы можете использовать этот оверлей со своим контейнером, хотя файловая система
разрешения по-прежнему контролируют, где вы можете писать, поэтому требуется sudo
для запуска контейнера как root
, если вам нужно писать на /
внутри
контейнер.
$ sudo сингулярная оболочка --overlay overlay.img ubuntu.sif
Для управления разрешениями в наложении, чтобы контейнер был доступен для записи
непривилегированным пользователям вы можете создать структуру каталогов на вашем хосте,
установите для него разрешения по мере необходимости и включите его в оверлей с помощью
вариант -d
для mkfs.ext3
:
$ mkdir -p оверлей / верхний $ dd if = / dev / zero of = overlay.img bs = 1M count = 500 && \ mkfs.ext3 -d overlay overlay.img
Теперь контейнер будет доступен для записи от имени непривилегированного пользователя, который
создал каталог наложения / верхний
, который был помещен в накладка.img
.
$ сингулярная оболочка --overlay overlay.img ubuntu.sif Сингулярность> echo $ USER dtrudg Singularity> echo "Hello"> / hello
Примечание
Опция -d
для mkfs.ext3
не поддерживает uid
или gid
значения> 65535. Чтобы разрешить запись от пользователей с большими uid
вы можете создавать каталоги для своего оверлея с открытым
разрешения, например mkdir -p -m 777 оверлей / верхний
. Во время выполнения
файлы и каталоги, созданные в оверлее, будут иметь правильные uid
и gid
, но невозможно заблокировать
разрешения, чтобы наложение было доступно для записи только определенным пользователям.
Наложение каталога
Наложение каталогов проще в использовании, чем наложение образа файловой системы, но каталог модификаций базового образа контейнера не может быть переносить или распространять так же легко, как один файл наложения.
Примечание
По соображениям безопасности вы должны быть пользователем root, чтобы использовать пустой каталог в качестве наложение. Образы файловой системы ext3 можно использовать в качестве оверлеев без рута привилегии.
Создайте каталог как обычно:
Пример ниже показывает наложение каталогов в действии.
$ sudo сингулярная оболочка --overlay my_overlay / ubuntu.sif Сингулярность ubuntu.sif: ~> mkdir / data Singularity ubuntu.sif: ~> chown пользователь / данные Singularity ubuntu.sif: ~> apt-get update && apt-get install -y vim Singularity ubuntu.sif: ~> который vim / usr / bin / vim Singularity ubuntu.sif: ~> выход
Оверлей, встроенный в SIF
В файл SIF можно встроить оверлейное изображение, содержащее контейнер. Это позволяет создать образ контейнера, доступный только для чтения, и ваш его модификации должны управляться как единый файл.Чтобы сделать это, вы должны сначала создать образ файловой системы:
$ dd if = / dev / zero of = overlay.img bs = 1M count = 500 && \ mkfs.ext3 overlay.img
Затем вы можете добавить оверлей к изображению SIF с помощью sif
функциональность Singularity.
$ singularity sif add --datatype 4 --partfs 2 --parttype 4 --partarch 2 --groupid 1 ubuntu_latest.sif overlay.img
Ниже приводится объяснение того, что означает каждый параметр и как он может повлиять на работу:
-
Тип данных
определяет, какой объект мы прикрепляем, например.грамм. а файл определения, переменная среды, подпись. -
partfs
следует установить в соответствии с типом раздела, например SquashFS, ext3, raw. -
parttype
определяет тип раздела. В нашем случае это установлен на наложение. -
партарх
должен быть настроен на архитектуру против вас строительство. В данном случае этодрам 64
. -
groupid
- это идентификатор группы образов контейнера. В большинстве случаев групп не больше одной, поэтому можно считать, что это 1.
Все эти параметры задокументированы в справке интерфейса командной строки. Доступ к нему
работает singularity sif add --help
.
После того, как вы выполнили описанные выше шаги, вы можете открыть свой
контейнер с опцией - записываемая
.
$ sudo singularity shell - записываемый ubuntu_latest.sif
Заключительное примечание
Вы обнаружите, что ваши изменения сохраняются во время сеанса, как если бы вы использовали контейнер с возможностью записи.
$ сингулярная оболочка --overlay my_overlay / ubuntu.sif Сингулярность ubuntu.sif: ~> ls -lasd / data 4 drwxr-xr-x 2 пользователя root 4096 9 апр, 10:21 / data Singularity ubuntu.sif: ~> который vim / usr / bin / vim Singularity ubuntu.sif: ~> выход
Если вы монтируете свой контейнер без каталога --overlay
, ваши изменения
уйдет.
$ оболочка сингулярности ubuntu.sif Сингулярность ubuntu.sif: ~> ls / data ls: нет доступа к 'data': нет такого файла или каталога Singularity ubuntu.sif: ~> который vim Singularity ubuntu.sif: ~> выход
Для изменения размера оверлея стандартные инструменты Linux, управляющие ext3
изображения могут быть использованы.Например, чтобы изменить размер созданного файла размером 500 МБ
выше до 700 МБ можно использовать e2fsck
и resize2fs
утилиты вроде так:
$ e2fsck -f my_overlay && \ resize2fs my_overlay 700M
Советы по созданию и управлению образами ext3 в вашем дистрибутиве легко доступны в Интернете и не рассматриваются далее в этом руководство по эксплуатации.
Настройка оверлея проигрывателя с помощью подключаемого модуля оверлея
Настройка оверлея проигрывателя с помощью подключаемого модуля оверлея- Дом
- Управление игроками
- Настройка оверлея проигрывателя с помощью подключаемого модуля оверлея
Домашняя страница
Содержание страницы
В этом разделе вы узнаете, как добавить плагин оверлея к плееру с помощью модуля Players.Плагин Overlay позволяет использовать как текст, так и изображения в качестве наложений. Плагин оверлея также можно настроить для того, когда появляется оверлей и как долго. Чтобы добавить к проигрывателю простое наложение изображения, используйте параметры стиля проигрывателя. См. Информацию в разделе «Стилизация плееров».
Оверлеи могут быть простыми сообщениями или изображениями, которые отображаются поверх проигрывателя. В этом проигрывателе логотип Brightcove отображается в правом нижнем углу проигрывателя с 2-х секундной точки до 6-секундной точки видео.
Вы можете управлять отображением наложения на основе:
- События игрока - отображение наложения на основе событий игрока, таких как воспроизведение, пауза или пользовательские события
- Временные интервалы - Отображение оверлея в указанное время во время воспроизведения видео
Оверлеи настраиваются с помощью плагина наложения. При настройке плагина необходимо указать URL-адрес JavaScript, файл CSS, имя плагина и параметры плагина.
Примечание. Информацию о программной настройке оверлеев проигрывателя см. В документации для разработчиков.Параметры плагина оверлея
Параметры плагина используются для настройки, когда появляется наложение, когда оно исчезает, что будет отображаться и где оно будет отображаться. Поддерживаются следующие параметры плагина (в формате JSON):
-
start
- Определяет, когда показывать наложение. Значение может быть строкой или числом. Если это число, наложение будет отображаться по истечении этого времени (в секундах) при воспроизведении видео.Если значение является строкой, оно интерпретируется как имя события Brightcove Player, напримерplay
,pause
илиend
. Список всех событий проигрывателя находится в Player API. -
конец
- Определяет, когда скрывать наложение. Значение может быть строкой или числом. Если это число, оверлей будет скрыт по истечении этого времени (в секундах) воспроизведения видео. Если значение является строкой, оно интерпретируется как имя события Brightcove Player, напримерplay
,pause
илиend
.Список всех событий проигрывателя находится в Player API. -
контент
- определяет, что будет отображаться как наложение. Значение может быть строкой или объектом DOM. Вы можете передать строку, HTML-элемент (изображение) или DOM DocumentFragment. -
align
- определяет, где показывать наложение. Поддерживаются следующие значения:верхний левый, верхний, верхний правый, правый, нижний правый, нижний, нижний левый, левый
В следующих примерах вариантов будет отображаться изображение логотипа Brightcove, начиная с 2-х секундной точки видео и заканчивая, когда видео проходит 6-секундную точку:
{
"оверлеи": [
{
"начало": 2,
«конец»: 6,
"content": " ",
"align": "нижний правый"
}
]
}
Настройка оверлея для проигрывателя
Чтобы реализовать подключаемый модуль Overlay с помощью модуля Players, выполните следующие действия:
- Откройте модуль «Игроки» и найдите игрока.
- Щелкните ссылку проигрывателя, чтобы открыть свойства проигрывателя.
- Щелкните Plugins на левой панели навигации.
- Щелкните Добавить подключаемый модуль> Пользовательский подключаемый модуль .
- Для имени подключаемого модуля введите overlay .
- Для JavaScript URL введите:
//players.brightcove.net/videojs-overlay/2/videojs-overlay.min.js
- Для CSS URL введите:
//players.brightcove.net/videojs-overlay/2/videojs-overlay.css
- Введите Параметры (JSON) .В приведенном ниже примере будет отображаться интерактивное изображение внизу плеера, начиная с отметки 2 секунды и заканчивая отметкой 6 секунд.
{ "оверлеи": [ { "начало": 2, «конец»: 6, "content": " ", "align": "нижний правый" } ] }
- Нажмите Сохранить и Опубликовать проигрыватель.Обратите внимание, что изменения вступят в силу в опубликованных проигрывателях в течение 5 минут.
Обратите внимание, что для игрока можно настроить несколько оверлеев. Дополнительную информацию см. В документации для разработчиков.
Пример использования CSS для стилизации наложения проигрывателя см. В документе разработчика плагина Logo Overlay.
Последнее обновление страницы: 24 мая 2021 г.
Добавление легенд, логотипов и баннеров в Google Earth Desktop с помощью наложений на экран - Google Earth Outreach
В этом руководстве мы будем использовать пример слоя бореального леса Google Earth группы PEW Environment Group, который вы можете скачать здесь и прочитать в этом сообщении в блоге.Открыв KML, вы заметите, что он содержит несколько уровней данных, каждый из которых сопровождается легендой и логотипами. Мы узнаем, как добавить легенду для слоя «Водно-болотные угодья Канады», изображенного ниже, в Google Планета Земля.
В другом руководстве вы узнали, как добавить наложение изображения в Google Планета Земля. В чем разница между наложением экрана и наложением изображения (или земли)?
Наложения экрана привязаны к экрану. Наложения изображений (земли) закрепляются относительно земли.
Наложения изображения (земли) могут быть добавлены с помощью кнопки панели инструментов. Наложения экрана добавляются в код KML.
В приведенных выше примерах легенда и логотипы являются наложенными на экран, а карта водно-болотных угодий является наложенным изображением (землей).
Смена позиции
Вы можете изменить положение легенды в окне Google Планета Земля, отредактировав конфигурации
- Требуются значения x и y, а также единицы для этих значений.
- Значения x и y можно указать в следующих единицах:
- Пиксели («пиксели»), которые представляют собой смещение от нижнего левого угла изображения в пикселях .
- Дроби («дробь»), означающие доли изображения, которые представляют собой смещение от нижнего левого угла изображения в долях (от 0 до 1)
- Позиции x и y могут быть указаны по-разному - например, x может быть в пикселях, а y может быть дробью.
- Начало системы координат находится в нижнем левом углу изображения.
- Требуются значения x и y, а также единицы для этих значений.
- Значения x и y можно указать в следующих единицах:
- Пиксели («пиксели»), которые представляют собой смещение от левого нижнего угла экрана в пикселях .
- Дроби («дробь»), означающие доли экрана, которые представляют собой смещение от нижнего левого угла экрана в долях (от 0 до 1)
- Позиции x и y могут быть указаны по-разному - например, x может быть в пикселях, а y может быть дробью.
- Начало системы координат находится в нижнем левом углу экрана.
Еще раз посмотрим на пример кода:
Давайте изменим положение легенды о болотах в центре экрана. Вернитесь в текстовый редактор. Измените единицы измерения для
<Наложение экрана>
Легенда: водно-болотные угодья <Значок>https: // сайты.google.com/site/earthoutreachextfiles/file-cabinet/legend_wetlands.png <вращениеXY x = "0,5" y = "0,5" xunits = "дробь" yunits = "дробь" /> Скопируйте код в текстовом редакторе и вернитесь в Google Планета Земля.Вставьте код в папку вашего проекта. Вы можете отключить или удалить предыдущую добавленную легенду. Теперь вы должны увидеть легенду водно-болотных угодий в центре экрана.
Шпаргалка по позиционированию наложения экрана
Чтобы разместить изображение в центре экрана Google Планета Земля ...
Для размещения изображения в верхнем левом углу экрана Google Планета Земля...
Чтобы разместить изображение в правом верхнем углу экрана Google Планета Земля ...
Для размещения изображения в правом нижнем углу экрана Google Планета Земля...
Чтобы разместить изображение в нижнем левом углу экрана Google Планета Земля ...
Подсказки
Чтобы познакомиться с изменением размещения, размера и поворота наложения экрана, вы можете попрактиковаться, загрузив и поэкспериментируя с примерами KML из Справочного руководства KML.
Если вы хотите изменить поворот или размер изображения с помощью кода KML, ознакомьтесь со Справочным руководством по KML, чтобы узнать, как использовать
Пользователи ПК могут загрузить и использовать инструмент David Tryse's Screen Overlay.
Обсуждение и отзывы
Есть вопросы по этому руководству? Хотите оставить отзыв? Посетите Справочное сообщество Google Планета Земля, чтобы обсудить это с другими.
.