AffineTransform und Verfärbung des Bildes

Nekros

Grünschnabel
Hi, ich verwende für die drehung eines Bildes eine die AffineTransformation allerding veränderet dabei das bild die Farbe ausser wenn ich dem AffineTransformOp als zweites Argument ein null übergebe was aber vom Resultat her zu schlecht ist, ich hoffe jemand weiß wie man die Verfärbung verhindern kann.

Code:
AffineTransform affineTransform = AffineTransform.getRotateInstance(Math.toRadians(grad), bild.getWidth() / 2, bild.getHeight() / 2);
AffineTransformOp shear_op = new AffineTransformOp(affineTransform, AffineTransformOp.TYPE_BICUBIC);
gedrehtesBild = shear_op.filter(bild, null);
 
Hallo!

Schau mal hier:
Java:
/**
 * 
 */
package de.tutorials;

import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.HashMap;
import java.util.Map;

import javax.imageio.ImageIO;

/**
 * @author Tom
 *
 */
public class ImageTransformationExample {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception{
        BufferedImage image = ImageIO.read(new File("c:/screenCapture.jpg"));
        BufferedImage dstImage = new BufferedImage(image.getWidth(), image.getHeight(),image.getType());
        AffineTransform affineTransform = AffineTransform.getRotateInstance(Math.toRadians(45), image.getWidth() / 2, image.getHeight() / 2);
        Map<RenderingHints.Key,Object> map = new HashMap<RenderingHints.Key, Object>();
        map.put(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
        map.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
        RenderingHints renderingHints = new RenderingHints(map);
        AffineTransformOp shear_op = new AffineTransformOp(affineTransform,
                renderingHints
                );
        shear_op.filter(image, dstImage);
        ImageIO.write(dstImage, "jpeg", new File("c:/screenCapture_rotated.jpg"));
    }

}

Gruss Tom
 
Zurück