J'ai un tableau de pixels (ayant des valeurs x et y). Comment définir la couleur de Pixel pointe vers le rouge

StackOverflow https://stackoverflow.com/questions/9511908

Question

Je veux juste savoir comment régler la couleur d'un pixel particulier en rouge? Supposons que x = 37 y = 54 et je veux changer la couleur de ce pixel en rouge. Je n'ai aucune idée de la façon de le faire. J'ai les valeurs des points autour d'un objet particulier dans un tableau de pixels utilisant l'algo de Marching Square.

Était-ce utile?

La solution

Vous ne pouvez pas modifier les pixels d'un existant CGImage. Vous devez créer un nouveau CGImage avec le pixel a changé. Ce sont les étapes:

  1. Créer un CGBitmapContext avec CGBitmapContextCreate.
  2. Dessiner l'existant CGImage dans ça utilisant CGContextDrawImage.
  3. Dessiner le pixel en utilisant CGContextSetFillColorWithColor et CGContextFillRect.
  4. Créer un nouveau CGImage utilisant CGBitmapContextCreateImage.

À la place d'utiliser CGContextSetFillColorWithColor et CGContextFillRect, vous pouvez modifier les données bitmap directement après avoir récupéré un pointeur avec CGBitmapContextGetData. Ce serait plus rapide si vous allez le faire beaucoup.

De plus, si vous allez le faire beaucoup, vous voudrez créer le contexte bitmap et dessiner l'image d'origine une seule fois, et garder le contexte bitmap pour diddling. Mais créer le nouveau CGImage Du contexte du bitmap peut être un goulot d'étranglement.

Autres conseils

Votre question est assez vague, mais voici une réponse générale:

Les couleurs de pixel sont généralement représentées avec 3 ou 4 octets:

Rouge - vert - bleu - (alpha)

Il devrait y avoir une fonction disponible dans le SDK que vous utilisez qui vous permet de définir ces valeurs pour un pixel. Vous régleriez le rouge à 255 et les autres à 0 si vous voulez une couleur rouge pure.

Si vous travaillez avec CCSPrite, changez simplement la couleur en utilisant le color Propriété du sprite:

mySprite.color=ccc3(123,234,12); //use whatever color values for red, green, blue you want

Valeurs max pour le rouge, le vert, le bleu ccc3 sont 255; Lorsqu'il est au maximum, la couleur est la couleur naturelle du sprite; Vous ne pouvez pas aller plus lumineux, mais la modification de ces valeurs se déplacera vers d'autres couleurs ou assombrira l'image si toutes sont modifiées par la même quantité.

Pour le rouge pur, utilisez ccc3(255,0,0)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top