img = picture.getImage();
BufferedImage src = Utilities.toBufferedImage(new DcImageIcon(img));
AffineTransform at = new AffineTransform();
at.rotate(Math.toRadians(degrees), src.getWidth() / 2.0, src.getHeight() / 2.0);
AffineTransform translationTransform = findTranslation (at, src);
at.preConcatenate(translationTransform);
BufferedImage destinationBI = new AffineTransformOp(at, AffineTransformOp.TYPE_BICUBIC).filter(src, null);
picture = new DcImageIcon(Utilities.getBytes(new DcImageIcon(destinationBI)));