2016-05-30 1 views
0

J'ai récemment travaillé sur certaines applications de Windows Phone 8.1 RT qui nécessitent beaucoup d'icônes. Pour iOS et Android, nous pouvons utiliser les icônes Blanc sur Noir et les transformer en bonne couleur (s) grâce au code. Mais pour WP8.1, il semble tout à fait impossible de l'exécuter rapidement.WP8.1 RT - Modification de la couleur des pixels

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; 
    } 
} 

J'ai eu cette classe changer les couleurs d'un WriteableBitmap mais il faut environ 15 secondes pour changer les couleurs d'une image de 62x62. Y a-t-il quelque chose que je fasse de mal et sur quoi puis-je m'améliorer?

Merci.

Répondre

0

Votre algo de lire une image en recherchant un pixel et en changeant ses couleurs est un processus fastidieux. Vous avez deux façons de le faire à un rythme plus rapide 1) Utilisation Segoe MDL2 Assets Vous pouvez utiliser cette famille de polices préinstallée qui contient la plupart des images de base. Avantage est que ce sont des images vectorielles changeant au premier plan qui changeraient la couleur instantanément. Recherche de CharacterMap, puis cette police dans votre système et vous trouverez toutes les polices disponibles
2) Si vous n'êtes pas en mesure de trouver votre image particulière dans le charmap alors vous devrez créer des images de chemin en utilisant un mélange similaire à la conversion d'images vecteur et vous pouvez facilement changer de couleur.