Rotando una imagen en java

Tengo una imagen de una Pan Card y cuando intento girarla 45 grados y guardarla, obtengo una imagen recortada. El código para rotar una imagen es:

    BufferedImage dimg = new BufferedImage(w, h, img.getType());
    Graphics2D g = dimg.createGraphics();
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, // Anti-alias!
            RenderingHints.VALUE_ANTIALIAS_ON);

    g.rotate(Math.toRadians(angle), w / 2, h / 2);

    g.drawImage(img, null, 0, 0);

Respuestas a la pregunta(1)

Su respuesta a la pregunta