Убедитесь, что текст всегда читается в Silverlight - PullRequest
1 голос
/ 30 марта 2009

У нас есть приложение Silverlight, которое показывает текст поверх видео. И текст, и видео можно считать переменными. Иногда у нас может быть темное видео, иногда яркое видео, иногда видео, в котором есть разделы обоих.

Подумайте о кредитах в конце фильма. Мы хотим, чтобы конечный пользователь всегда мог прочитать текст, показываемый поверх видео. Текст всегда накладывается поверх видео.

Простое решение состоит в том, чтобы два текста отображались дважды, один раз белым и один раз черным с небольшим смещением. Это почти работает, но на самом деле выглядит немного грубо и лишает пользователя опыта.

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

Есть ли способ сделать это? Или есть равный или лучший обходной путь?

Ответы [ 3 ]

1 голос
/ 30 марта 2009

Звуки, похожие на проблему обеспечения того, чтобы субтитры всегда читались в фильмах / ТВ. Самое надежное, но не обязательно самое элегантное решение - иметь цветной фоновый прямоугольник для текста, который либо непрозрачен, либо имеет низкое значение прозрачности - часто серый или черный с хорошим контрастным цветом переднего плана.

1 голос
/ 07 мая 2009

Я сделал это с помощью эффекта пиксельного шейдера DropShadow в Silverlight 3. Он прекрасно работает, но, поскольку пиксельные шейдеры не выполняются на аппаратном уровне, это может сильно повлиять на производительность приложения.

Если вы хотите стать амбициозным, вы можете написать свой собственный пиксельный шейдер. Silverlight 3 поддерживает шейдеры HLSL.

1 голос
/ 30 марта 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...