相关疑难解决方法(0)

AffineTransform会截断图片,我有什么不对?

我这里有一个尺寸为2156x1728的黑/白png文件,我希望使用AffineTransform旋转90度.生成的图像没有正确的比例.这里有一些示例代码(假设我已成功将png文件加载到BufferedImage中):

public BufferedImage transform(BufferedImage image){

    System.out.println("Input width: "+ image.getWidth());
    System.out.println("Input height: "+ image.getHeight());

    AffineTransform affineTransform = new AffineTransform();
    affineTransform.setToQuadrantRotation(1, image.getWidth() / 2, image.getHeight() / 2);

    AffineTransformOp opRotated = new AffineTransformOp(affineTransform, AffineTransformOp.TYPE_BILINEAR);
    BufferedImage transformedImage = opRotated.createCompatibleDestImage(image, image.getColorModel());
    System.out.println("Resulting width: "+ transformedImage.getWidth());
    System.out.println("Resulting height: "+ transformedImage.getHeight());

    transformedImage = opRotated.filter(image, transformedImage);
    return transformedImage;
}
Run Code Online (Sandbox Code Playgroud)

输出相应:

输入宽度:2156

输入高度:1728

结果宽度:1942年

结果身高:1942年

旋转如何回归这些完全不相关的尺寸?

java awt affinetransform

2
推荐指数
2
解决办法
3710
查看次数

标签 统计

affinetransform ×1

awt ×1

java ×1