当我将具有实际尺寸的图像设置到面板上并使用鼠标进行裁剪时,效果很好,但是当我将图像调整到面板上的尺寸并进行裁剪时,裁剪图像时出现错误。如何使用鼠标裁剪图像大小?
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)
答案 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 /高度值。