如何在Java中裁剪图像大小?

时间:2018-10-03 13:10:23

标签: java swing

当我将具有实际尺寸的图像设置到面板上并使用鼠标进行裁剪时,效果很好,但是当我将图像调整到面板上的尺寸并进行裁剪时,裁剪图像时出现错误。如何使用鼠标裁剪图像大小?

  int x = Math.min(p1.x, p2.x);
  int y = Math.min(p1.y, p2.y);
  int w = Math.abs(p1.x - p2.x);
  int h = Math.abs(p1.y - p2.y);
  BufferedImage dest = image.getSubimage(x,y,w,h)

1 个答案:

答案 0 :(得分:0)

  

如果要从原始图像进行裁剪,则需要计算两个图像的x / y比例因子。然后,您需要通过这些比例因子来调整x / y / width / height值。

因此,如果您的原始图像是400 x 100,而调整大小后的图像是100 x 100,您将执行以下操作:

double xScale = originalImageWidth / resizeImageWidth = 400 / 100 = 4.

现在,如果调整大小后的图像上的裁剪矩形为(10,10,20,30);

然后,您需要计算以下值:

int x = rectangle.x * xScale;
int width = rectangle.width * xScale;

image.getSubImage(x, y, width, height);

您显然需要使用y比例因子来计算y /高度值。