2011-06-12 27 views
1

我有一个PNG图像,我想要得到该矩形以适应它上面的可见图像。在PNG图像上获取合适的矩形

这里我的形象的例子:

enter image description here

我有图像尺寸比它里面的图像更大。

外部矩形是我的图像的真实宽度和高度。我想让矩形依赖于内部矩形的可见图像。

我正在使用Java。我怎么能这样做?

+1

请允许我欢迎您来到StackOverflow,并提醒我们通常在这里做的三件事:1)当您获得帮助时,尝试给予它**在您的专业领域回答问题** 2)['阅读(http://tinyurl.com/2vycnvr)3)当你看到很好的问答时,用['灰色三角形](http://i.imgur.com/kygEP.png)“因为系统的可信度基于用户通过分享知识获得的声誉。还请记住接受更好地解决您的问题的答案,如果有的话['通过按复选标记'](http://tinyurl.com/4srwe2t) – 2011-06-12 05:17:45

+0

Oke ... 对不起2 我是新来的... – Kenjiro 2011-06-12 05:25:09

回答

1

如果你想自己做,我的想法是:

开始在图像的顶部:

  1. 扫描图像的最上一行和计数的不同颜色的数量。你可能想在这里用一点模糊来定义“distinct”。
  2. 如果只有一种颜色,请记住该颜色。否则,你完成了顶部。
  3. 扫描下一行。如果它只有一种颜色,并且该颜色与最上面一行中的颜色相同,则继续执行第3步。
  4. 您已完成。当前行是第一个“相关”图像行。

对图像的其他边界重复上述步骤,就完成了。

注:为了能够测试你的算法正确,你应该在整个任务拆分为若干个:

  1. Rectangle visibleRectangle(BufferedImage image);这是自动化测试的良好界面。
  2. BufferedImage crop(BufferedImage image, Rectangle image);其余的工作,这应该是相当简单的编程。
+0

我使用PixelGrabber,它看起来很好找。我得到那个透明度为零的像素。 – Kenjiro 2011-06-12 07:20:46