2017-04-15 1 views
1

J'essaie de créer un algorithme qui rendra tous les pixels d'une certaine couleur dans une image transparente. Voilà ce que j'ai essayé jusqu'à présent:Définition de la touche de couleur de l'image dans le traitement 3.2

void setup() { 
    PImage img; 
    img = loadImage("img.png"); 
    if (color(img) == color(255) { 
    alpha(img) = 0; 
    } 
    image(img, 0, 0); 
} 

Mais je reçois l'erreur The function color() expects paramters like "color(int)" Quelle est la bonne façon de le faire?

Répondre

1

Essayez quelque chose comme ceci:

PImage set_colorkey (PImage img, color colorkey) { 
    PImage new_img = img.get(); 
    new_img.loadPixels(); 
    for (int i = 0; i < new_img.width*new_img.height; i++) { 
    if (new_img.pixels[i] == colorkey) { 
     new_img.pixels[i] = color(255, 1); 
    } 
    } 
    new_img.updatePixels(); 
    return new_img; 
} 

void setup() { 
    background(255, 0, 0); 
    PImage img = loadImage("img.png"); 
    img = set_colorkey(img, color(255)); 
    image(img, 0, 0); 
} 
+0

semble fonctionner, merci !! –

+1

Mais pourquoi la couleur (255, 1) dans la ligne 6? –

+0

La définition de la transparence à 0 semble perturber le système et rendre la couleur complètement non transparente. –