Dans mon application, je dois effectuer une opération de luminosité sur l'image. J'ai fait avec les choses suivantesOpen GL + Luminosité de l'image + sauvegarde de l'image
- Obtenir l'image de la photothèque.
- Dessiner cette image en utilisant l'Open GL.
Modification de la luminosité de l'image.
-(void) DoBrightness:(float) aBrightness { [EAGLContext setCurrentContext:context]; // Clear the buffer glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer); glClearColor(0.0, 0.0, 0.0, 0.0); glActiveTexture(GL_TEXTURE0); glVertexPointer(2, GL_FLOAT, 0, spriteVertices); glEnableClientState(GL_VERTEX_ARRAY); glTexCoordPointer(2, GL_SHORT, 0, spriteTexcoords); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); if (aBrightness >= 1.0f) { glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_ADD); glColor4f(aBrightness-1, aBrightness-1, aBrightness-1, aBrightness-1); } else { glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_SUBTRACT); glColor4f(1-aBrightness, 1-aBrightness, 1-aBrightness, 1-aBrightness); } glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_RGB, GL_TEXTURE); glTexEnvi(GL_TEXTURE_ENV, GL_SRC1_RGB, GL_PRIMARY_COLOR); glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE); glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_ALPHA, GL_TEXTURE); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); // Display the buffer glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer); [context presentRenderbuffer:GL_RENDERBUFFER_OES]; }
problème vient lorsque je tente de sauver l'image avec la luminosité. En fait, il sauve l'image précédente i.e image sans luminosité
peut-on m'aider, comment enregistrer l'image en utilisant le tampon rendu?
grâce,
Sagar
Merci, il a sauvé le contenu rendu. En fait, je suis novice pour OpenGL, donc je vais doucement. J'obtiens maintenant l'erreur "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES". –