如何在Java中裁剪具有负裁剪边界的图像?

时间:2012-09-17 12:11:26

标签: java image image-processing crop

我有一个任意大小的图像,我需要用负边界值裁剪它。

所以,基本上我有图像(1),我想把它裁剪成(2)的尺寸。

         (1)
          +---------------------------+
 (2)      |                           |
  +-----------------------------+     |
  |       |                     |     |
  |       |                     |     |
  |       |                     |     |
  |       |                     |     |
  +-----------------------------+     |
          |                           |
          +---------------------------+

有关如何在Java中解决此问题的任何想法?

我尝试了Scalr库,但它不支持负裁剪边界。

2 个答案:

答案 0 :(得分:2)

此任务不需要库。

您可以创建以这种方式产生的新图像:

BufferedImage newImage = new BufferedImage(width, height, imageType);

然后你可以用这种方式从旧图像裁剪出你需要的部分:

BufferedImage tempImage = oldImage.getSubimage(0, y, otherWidth, height);

然后,您将tempImage放入newImage

Graphics2D g2 = newImage.createGraphics();
g2.drawImage(tempImage, x, 0, otherWidth, height, null);
g2.dispose();
  • width是image1宽度
  • height是image1宽度
  • x是x轴上2个图像之间的顶部交点
  • y是y轴上2个图像之间的顶部交叉点
  • otherWidthwidth - x

答案 1 :(得分:-1)

你不能把图像放在一个div组中,以显示为具有设定高度和宽度的块,然后将图像放在包含div的右边吗?