Лучше использовать растровые изображения или Xaml для графических элементов - PullRequest
2 голосов
/ 18 ноября 2011

Я ищу стиль моего приложения с некоторыми графическими элементами.Иконки и другие идеи.

Лучше ли с точки зрения производительности и передового опыта использовать векторную графику (XAML) или превратить мою графику в формат PNG?

И почему?

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

Ответы [ 2 ]

4 голосов
/ 18 ноября 2011

Вы должны взвесить свои собственные потребности. Если это исключительно производительность, то я бы сказал, что это зависит от количества изображений. Если их много, XAML действительно будет более производительным, иначе это будет незначительным.

Но я должен сказать, что для удобства сопровождения, тем более, что вы говорите о иконках и тому подобном, вам гораздо лучше с растровыми изображениями, и я скажу вам, почему. Любой и их брат могут редактировать значок. Вы не можете сказать то же самое с векторной графикой. Если вы хотите заменить ваши иконки в какой-то момент, вы просто замените изображение. Вам не нужно сталкиваться с трудностями, связанными с созданием и / или поиском векторных изображений, а затем (скорее всего) с необходимостью конвертировать их в XAML с помощью фильтра экспорта. Кроме того, существуют буквально миллионы лицензированных значков CC в растровом виде, которые вы можете использовать не более чем для атрибуции.

Да, иногда возникают неприятности с растровыми изображениями (например, некоторые причуды, связанные с ActualWidth / ActualHeight), но, на мой взгляд, они незначительны.

ДОБАВЛЕНО: И-Лун Луо из Microsoft заявил, что векторы быстрее в 2008 году. С выпуском версии 3 в 2009 году Silverlight воспользовался графическим процессором, который делает векторы еще быстрее, если вы включите это так же, как если бы вы также использовали BitmapCache. Таким образом, с чисто точки зрения производительности, векторы будут быстрее, теоретически.

2 голосов
/ 18 ноября 2011

Преимущества XAML перед PNG:

  1. Масштабирование - чертежи XAML состоят из векторов, поэтому можно масштабировать. При масштабировании, превышающем коэффициент 2, могут возникать проблемы (ошибки округления при уменьшении и слишком мало деталей при увеличении).
  2. Динамическая раскраска / анимация - вы можете легко манипулировать цветами и точками или даже кривыми на чертеже, используя анимацию.

Преимущества PNG над XAML:

  1. Скорость загрузки / кэширования - PNG может быть кэширована на GPU. Никогда больше байтов на диске, чем 4 бита на пиксель (+ некоторые издержки)
  2. Прекрасный пиксель - то, что рисует дизайнер, показано в приложении. Это намного сложнее при использовании векторов.

Вы выбираете в зависимости от ваших потребностей и измерений производительности, загрузки и размеров файлов.

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