Exportando un JPanel a una imagen

Así que he estado tratando de exportar una imagen que he dibujado en un JPanel en una imagen. He estado usando este método:

BufferedImage image = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
paint(g);
try { ImageIO.write(image, "png", new File([location goes here]); } catch (IOException e) {}

Obtengo una imagen en mi ubicación deseada pero obtengo una versión comprimida de lo que muestra mi JPanel. Lo mismo sucede si intento exportar un BMP también. ¿Hay alguna manera de obtener una imagen de píxel perfecto exportada desde JPanel? Gracias por adelantado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta