PaleoCrafter

Untitled

Jul 30th, 2017
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.53 KB | None | 0 0
  1. public static void saveGlTexture(String name, int textureId, File outputFolder) {
  2.     GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureId);
  3.  
  4.     GL11.glPixelStorei(GL11.GL_PACK_ALIGNMENT, 1);
  5.     GL11.glPixelStorei(GL11.GL_UNPACK_ALIGNMENT, 1);
  6.  
  7.     int width = GL11.glGetTexLevelParameteri(GL11.GL_TEXTURE_2D, 0, GL11.GL_TEXTURE_WIDTH);
  8.     int height = GL11.glGetTexLevelParameteri(GL11.GL_TEXTURE_2D, 0, GL11.GL_TEXTURE_HEIGHT);
  9.     int size = width * height;
  10.  
  11.     BufferedImage bufferedimage = new BufferedImage(width, height, 2);
  12.     String fileName = name + ".png";
  13.  
  14.     File output = new File(outputFolder, fileName);
  15.     IntBuffer buffer = BufferUtils.createIntBuffer(size);
  16.     int[] data = new int[size];
  17.  
  18.     GL11.glGetTexImage(GL11.GL_TEXTURE_2D, 0, GL12.GL_BGRA, GL12.GL_UNSIGNED_INT_8_8_8_8_REV, buffer);
  19.     buffer.get(data);
  20.     bufferedimage.setRGB(0, 0, width, height, data, 0, width);
  21.     BufferedImage newImage = new BufferedImage(
  22.         bufferedimage.getWidth(), bufferedimage.getHeight(),
  23.         BufferedImage.TYPE_INT_ARGB);
  24.     Graphics2D g = newImage.createGraphics();
  25.     AffineTransform at = new AffineTransform();
  26.     at.concatenate(AffineTransform.getScaleInstance(1, -1));
  27.     at.concatenate(AffineTransform.getTranslateInstance(0, -bufferedimage.getHeight()));
  28.     g.transform(at);
  29.     g.drawImage(bufferedimage, 0, 0, null);
  30.     g.dispose();
  31.  
  32.     try {
  33.         ImageIO.write(newImage, "png", output);
  34.     } catch (IOException ioexception) {
  35.         Log.info("Unable to write: ", ioexception);
  36.     }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment