Как правильно отображать смайлики? - PullRequest
4 голосов
/ 04 октября 2008

В вашем собственном приложении это.

[править]

Хорошо, поэтому я полностью согласен - больше, чем вы знаете - без сомнения, что графические смайлики - это мерзость. Но! Это не помогает мне, когда владельцы проекта говорят мне, что мы должны поддерживать графические смайлики.

[/ править]

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

Так что мой вопрос на самом деле к людям, которые сделали это, придумаете ли вы удовлетворительный способ рендеринга смайликов, который не является просто одним массивным взломом? Чтобы начать обсуждение:

В двух реализациях я попробовал следующие подходы.

В 3D-приложении, где строки текста отображаются в виде «текстур»; Я заменил строки смайликов изображениями, соответствующими типу визуализации текста, чтобы смайлик стал просто еще одним элементом текста.

По сути, движок рендеринга текста нужно было модифицировать на самых глубоких уровнях. Это дает хорошие результаты, но занимает очень много времени и очень трудно понять, как правильно (или, по крайней мере, для меня, во всяком случае; P)

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

Ответы [ 3 ]

6 голосов
/ 04 октября 2008
  1. Создать новый шрифт. Это оставлено в качестве упражнения для читателя
  2. Перекодируй свой строки в наборе символов ваш новый шрифт
  3. Draw:
Выполнение повторяющихся вызовов операционной среды для расчета текстовых метрик - для определения местоположения ваших смайликов. Нарисуйте смайлики перед текстом (если вы используете шрифт для улучшения любого фонового изображения - скажем, лицо с глифами шрифта, рисующим черный на лице) или после текста (в этом случае символ каждый смайлик спорный, и важен только размер символов).
5 голосов
/ 04 октября 2008

Это приемлемый ответ, чтобы предложить вам не конвертировать смайлики? Весь смысл текстовых смайликов в том, что они узнаваемы ... в текстовом виде.

[редактировать] Пожалуйста, не позволяйте этому мнению / предложению отговорить кого-либо от помощи ответить на этот вопрос. Иногда вы не можете бороться с клиентами, хотя это может стоить еще пару попыток.

0 голосов
/ 04 октября 2008

Вот идея: не конвертируйте их, а поворачивайте на 90 градусов.

Например, вы можете визуализировать изображение смайлика, а затем повернуть его на 90 градусов по часовой стрелке и отобразить его.

...