2017-02-06 33 views
1

У меня есть код, который включает в себя 2 слоя на дисплее, и мне нужно сделать несколько пикселей переднего слоя бесцветными для появления фоновых пикселей. Я не мог найти способ сделать пиксели невидимыми. В этой связи я попытался создать передний слой по форме. основная проблема с этим решением заключается в том, что он настолько медленный и требует процессора. Мой код заключается в следующем:Как сделать некоторые пиксели бесцветными

import processing.video.*; 
import SimpleOpenNI.*; 
int[] userMap; 
PShape Stencil,pix; 
SimpleOpenNI kinect; 
void setup(){ 
    size(640,480,P2D); 
kinect = new SimpleOpenNI(this); 
kinect.enableDepth(); 
    kinect.enableUser(); 
    Stencil=createShape(GROUP); 
    } 


    void draw(){ 
    background(255); 
    loadPixels(); 
    kinect.update(); 
    userMap =null; 
    userMap = kinect.userMap(); 
for (int y=0; y<480; y++) { 
     for (int x=0; x<640; x++) { 
     int index = x + y * 640; 
     if (userMap[index] == 0) { 
      pix = createShape(ELLIPSE, x, y,1,1); 
    color col=color(0,0,255); 
    pix.setFill(col); 
    pix.setStroke(false); 
Stencil.addChild(pix); 
     } 
     } 
    } 

    shape(Stencil); 
} 

могли бы вы помочь мне, чтобы скрыть или сделать некоторые пиксели невидимым?

ответ

2

Дайте им цвет с альфа-значением. Просто добавьте 4-й параметр в любую функцию цвета:

color(0, 0, 0, 0); //transparent 
color(0, 0, 0, 128); //half transparent 
color(0, 0, 0, 255); //opaque (default)