加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java Image Cut Off

发布时间:2020-12-15 03:00:56 所属栏目:Java 来源:网络整理
导读:与上次相同的问题,但我会提供更多细节. 我目前使用以下方式旋转图像: int rotateNum //in main class double rotationRequired = Math.toRadians(rotateNum); double locationX = img.getWidth(this) / 2; double locationY = img.getHeight(this) / 2; Aff
与上次相同的问题,但我会提供更多细节.
我目前使用以下方式旋转图像:
int rotateNum //in main class

 double rotationRequired = Math.toRadians(rotateNum);

    double locationX = img.getWidth(this) / 2;
    double locationY = img.getHeight(this) / 2;
    AffineTransform tx = AffineTransform.getRotateInstance(rotationRequired,locationX,locationY);
    AffineTransformOp op = new AffineTransformOp(tx,AffineTransformOp.TYPE_BILINEAR);


    g2d.drawImage(op.filter((BufferedImage)img,null),imgX,imgY,null);

然后我实际上使用以下方式旋转图像:

double deltaX = (double)(imgY - otherImg.imgY);
double deltaY = (double)(imgX - otherImg.imgX);
rotateNum = (int)(180 * Math.atan2(deltaY,deltaX) / Math.PI);

我的图片大小不一.较小的图像不会被切断(意味着被白色空间切断),但较大的图像不会被切断(左侧或右侧).调整图像大小不起作用,我使用了剪切图像周围的白色矩形
GIMP.

示例图片:
之前(忽略左边的灰色区域)

后:
看到侧面的截止点

解决方法

我认为重要的不是图像的大小,而是它的偏心:更像方形的图像比较胖或更薄的图像没有问题.

我认为你的问题是你的旋转中心不应该是[宽度/ 2,高度/ 2] – 它并不那么简单.想想位于大正方形左上部的图像,正方形边的长度将是图像的宽度或高度,以较大者为准.这是旋转图像时旋转的内容.

例如,请在此处查看我的回复:https://stackoverflow.com/a/8720123/522444

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读