J'ai un dessin à l'intérieur fbo
, et en essayant de réduire fbo
taille en recadrant aux parties visibles en utilisant la boîte de délimitation. Voici une représentation visuelle de ce que je suis en train de réaliser: bounding box exampleRecadrer Fbo à un cadre dans Openframeworks
J'ai trouvé la solution: passer fbo
données à pixels
puis détecter les premiers pixels de couleur à gauche, à droite, en haut, la partie inférieure de l'image.
Dans la partie suivante du code, j'essaie de détecter l'intersection inférieure. Mais j'ai un problème étrange avec les pixels.
int w = 4;
int h = 4;
fbo.allocate(w, h, GL_RGBA);
fbo.begin();
ofClear(0, 0);
fbo.end();
fbo.begin();
ofSetColor(255, 0, 0);
ofDrawRectangle(0, 0, 4, 2);
fbo.end();
pixels.allocate(w, h, GL_RGBA);
fbo.readToPixels(pixels);
for(auto line = pixels.getLines().end(); line != pixels.getLines().begin(); --line){
for(auto pixel: line.getPixels()){
cout << "line: " << line.getLineNum() << " color: " << pixel.getColor() << endl;
}
}
sortie:
line: 4 color: 24, 215, 83, 118
line: 4 color: 255, 127, 0, 0
line: 4 color: 173, 7, 0, 0
line: 4 color: 1, 0, 0, 0
line: 3 color: 0, 0, 0, 0
line: 3 color: 0, 0, 0, 0
line: 3 color: 0, 0, 0, 0
line: 3 color: 0, 0, 0, 0
line: 2 color: 0, 0, 0, 0
line: 2 color: 0, 0, 0, 0
line: 2 color: 0, 0, 0, 0
line: 2 color: 0, 0, 0, 0
line: 1 color: 255, 0, 0, 255
line: 1 color: 255, 0, 0, 255
line: 1 color: 255, 0, 0, 255
line: 1 color: 255, 0, 0, 255
line:1
semble bien, mais ce qui ne va pas avec line:4
, ce sont les couleurs au hasard là? Après la reconstruction de l'application, ils ont peut-être disparu, mais avec la chance aléatoire. Peut-être qu'il y a une autre façon de recadrer fbo
par des parties visibles de l'image? Cette solution ne fonctionne pas pour moi.
Cela est logique. Je vous remercie! – Gordey