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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Java中裁剪调整大小的图像?相关的知识,希望对你有一定的参考价值。

当我将具有实际尺寸的图像设置到面板上并使用鼠标进行裁剪时,它工作正常,但是当我将图像调整到面板上并裁剪时,裁剪图像会出错。如何使用鼠标裁剪调整图像大小?

  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.

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

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

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

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

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

以上是关于如何在Java中裁剪调整大小的图像?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python - 如何在不超过原始图像大小的情况下调整裁剪图像的大小以满足纵横比

php调整图像大小然后裁剪图像问题

如何使用 GraphicsMagick 从图像中裁剪/调整背景/边框的大小

这个调整图像大小/裁剪图像的逻辑是不是正确(在 php 中,但它是关于逻辑而不是代码)

如何裁剪或调整图像大小以在 asp.net 中设置纵横比

调整图像大小并裁剪为新的纵横比