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

如何在Java中裁剪图像大小?,java,swing,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

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

  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)
如果要从原始图像裁剪,则需要计算两幅图像的x/y比例因子。然后需要通过这些比例因子调整x/y/宽度/高度值

因此,如果您的原始图像为400 x 100,且调整大小的图像为100 x 100,您可以执行以下操作:

double xScale = originalImageWidth / resizeImageWidth = 400 / 100 = 4.
int x = rectangle.x * xScale;
int width = rectangle.width * xScale;

image.getSubImage(x, y, width, height);
现在,如果调整大小的图像上的裁剪矩形是(10,10,20,30)

然后你需要计算你的值,比如:

double xScale = originalImageWidth / resizeImageWidth = 400 / 100 = 4.
int x = rectangle.x * xScale;
int width = rectangle.width * xScale;

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

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

欢迎使用。请拍摄并查看。
如何使用鼠标裁剪调整图像大小?
-与裁剪原始图像的方式相同<代码>但当我在面板上调整图像大小时您只需确保在进行裁剪时参考“调整大小”图像即可。如果需要更多帮助,请张贴演示问题的帖子。但我从“调整图像大小”和“从原始图像裁剪”中选择了区域
从原始图像裁剪-这就是我的观点。不要这样做。您需要从调整大小的图像中裁剪!!!这是现在在面板上可见的图像。如果要从原始图像裁剪,则需要计算两幅图像的x/y比例因子。然后,您需要通过这些比例因子调整x/y/宽度/高度值。谢谢,但我是这方面的新手。可以向我推荐一些与此相关的示例或教程吗?通过这种方法,我会错误地裁剪图像,因为我将比例值设置为点,当我乘以x、y、w时,它将采取整数值,这意味着一个点的差距是给错误的裁剪。张贴你的文章,说明问题。我不知道你在干什么。