旋转图像切断侧面缓冲图像,图像图标,java

时间:2015-09-29 12:45:25

标签: java rotation bufferedimage imageicon

        BufferedImage img = ImageIO.read(new File(paramString));
    double locationX = img.getWidth(this) / 2;
    double locationY = img.getHeight(this) / 2;
    AffineTransform tx = AffineTransform.getRotateInstance(Math.toRadians(paramInt3), locationX, locationY);
    AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
    BufferedImage bimg = new BufferedImage (img.getWidth(this), img.getWidth(this), BufferedImage.TYPE_BYTE_INDEXED);
    bimg = op.filter (img, null);
    ImageIcon localImageIcon = new ImageIcon (bimg);

为什么可能会被切断? 我正在使用一个库,要求最终结果是ImageIcon。

2 个答案:

答案 0 :(得分:0)

您的目标图片在此处创建:

String val = "123.456";
float f = float(val);
if(f > 100){
   println("here!");
}

这是一个正方形!如果源图像不是正方形,则应创建如下目标图像:

BufferedImage bimg = new BufferedImage (img.getWidth(this), img.getWidth(this), BufferedImage.TYPE_BYTE_INDEXED);

答案 1 :(得分:0)

也许这只是一个四舍五入的问题:

[{"__type":"Pointer","className":"Game","objectId":"..."}]

宽度和高度是整数,如果它们不均匀,则可能会出现舍入问题。试试这个:

double locationX = img.getWidth(this) / 2;
double locationY = img.getHeight(this) / 2;