2016-05-30 3 views
0

В последнее время я работаю над некоторыми приложениями Windows Phone 8.1 RT, которые требуют довольно много значков. Для iOS и Android мы можем использовать иконки «Белый на черном» и превращать их в правильный цвет (ы) через код. Но для WP8.1 кажется довольно невозможным запустить его быстро.WP8.1 RT - Изменение цвета пикселя

class ColoredImage 
{ 
    public static WriteableBitmap GetColoredImage(WriteableBitmap bitmap, Color color) 
    { 
     var result = bitmap; 

     for (int i = 0; i < (result.PixelWidth); i++) 
     { 
      for (int j = 0; j < result.PixelHeight; j++) 
      { 
       if (result.GetPixel(i, j) == Colors.Black) 
       { 
        result.SetPixel(i, j, Colors.Transparent); 
       } 
       else 
       { 
        result.SetPixel(i, j, color); 
       } 
      } 
     } 
     return result; 
    } 
} 

Я получил этот класс меняющегося цвета в WriteableBitmap, но она занимает около 15 секунд, чтобы изменить цвет в 62x62 изображения. Есть ли что-то, что я делаю неправильно, и о том, что я могу улучшить.

Спасибо.

ответ

0

Ваш алгоритм чтения изображения, находящего пиксель и изменяющего их цвета, является трудоемким процессом. У вас есть два способа, которыми вы можете сделать это быстрее: 1) Использование Segoe MDL2 Assets Вы можете использовать это предварительно установленное семейство шрифтов, которое содержит большинство основных изображений. Преимущество заключается в том, что это векторные изображения, меняющие передний план, мгновенно меняют цвет. Найдите CharacterMap, а затем этот шрифт в вашей системе, и вы найдете все доступные шрифты
2) Если вы не можете найти свое изображение в charmap, вам придется создавать образы пути, используя смесь, которая похожа на преобразование изображений в вектор, а затем вы можете легко изменить цвет.

Смежные вопросы