

readTexture method to retrieve the current screen, check the direction of the face, and set the corresponding angle according to the picture below.public static Bitmap readTexture(int texture, int width, int height) { int[] frame = new int[1]; GLES20.glGenFramebuffers(1, frame, 0); GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, frame[0]); GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, texture, 0); byte[] data = new byte[width * height * 4]; ByteBuffer buffer = ByteBuffer.wrap(data); GLES20.glPixelStorei(GLES20.GL_PACK_ALIGNMENT, GLES20.GL_TRUE); GLES20.glReadPixels(0, 0, width, height, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buffer); Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); bitmap.copyPixelsFromBuffer(buffer); GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); GLES20.glDeleteFramebuffers(1, frame, 0); return bitmap; }
setImageOrientation method in Android.
readTexture method to retrieve the current screen, check the direction of the face, and set the corresponding angle according to the picture below.#import <OpenGLES/ES2/gl.h>-(void)readTexture:(int)textureId width:(int)width height:(int)height{glBindTexture(GL_TEXTURE_2D, textureId);GLuint framebuffer;glGenFramebuffers(1, &framebuffer);glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, textureId, 0);GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);if (status != GL_FRAMEBUFFER_COMPLETE) {NSLog(@"Framebuffer is not complete.");}GLubyte *pixels = (GLubyte *)malloc(width * height * 4 * sizeof(GLubyte));glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels);glBindFramebuffer(GL_FRAMEBUFFER, 0);glDeleteFramebuffers(1, &framebuffer);CVPixelBufferRef pixelBuffer = NULL;CVPixelBufferCreateWithBytes(NULL, width, height, kCVPixelFormatType_32BGRA, pixels, width * 4, NULL, NULL, NULL, &pixelBuffer);free(pixels);CVPixelBufferRelease(pixelBuffer);}
setImageOrientation method in iOS.
Feedback