Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void saveGlTexture(String name, int textureId, File outputFolder) {
- GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureId);
- GL11.glPixelStorei(GL11.GL_PACK_ALIGNMENT, 1);
- GL11.glPixelStorei(GL11.GL_UNPACK_ALIGNMENT, 1);
- int width = GL11.glGetTexLevelParameteri(GL11.GL_TEXTURE_2D, 0, GL11.GL_TEXTURE_WIDTH);
- int height = GL11.glGetTexLevelParameteri(GL11.GL_TEXTURE_2D, 0, GL11.GL_TEXTURE_HEIGHT);
- int size = width * height;
- BufferedImage bufferedimage = new BufferedImage(width, height, 2);
- String fileName = name + ".png";
- File output = new File(outputFolder, fileName);
- IntBuffer buffer = BufferUtils.createIntBuffer(size);
- int[] data = new int[size];
- GL11.glGetTexImage(GL11.GL_TEXTURE_2D, 0, GL12.GL_BGRA, GL12.GL_UNSIGNED_INT_8_8_8_8_REV, buffer);
- buffer.get(data);
- bufferedimage.setRGB(0, 0, width, height, data, 0, width);
- BufferedImage newImage = new BufferedImage(
- bufferedimage.getWidth(), bufferedimage.getHeight(),
- BufferedImage.TYPE_INT_ARGB);
- Graphics2D g = newImage.createGraphics();
- AffineTransform at = new AffineTransform();
- at.concatenate(AffineTransform.getScaleInstance(1, -1));
- at.concatenate(AffineTransform.getTranslateInstance(0, -bufferedimage.getHeight()));
- g.transform(at);
- g.drawImage(bufferedimage, 0, 0, null);
- g.dispose();
- try {
- ImageIO.write(newImage, "png", output);
- } catch (IOException ioexception) {
- Log.info("Unable to write: ", ioexception);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment