我有一个应用程序,用户绘制图片,然后这些图片转换为PDF格式。我需要能够在转换之前裁剪出空白。最初我跟踪最高和最低的x和y值(http://stackoverflow.com/questions/13462088/cropping-out-whitespace-from-a-user-drawn-image)。这工作了一段时间,但现在我想给用户擦除的能力。这是一个问题,因为例如,如果用户擦除边界框将改变的最顶点,但我不会对框的新尺寸。
现在我逐个像素地浏览整个图像,以确定边界框。这对于一张图片来说并不坏,但是我会有~70,这对于70来说太慢了。我还考虑过将每个像素保持在一个arraylist中,但我觉得这样做根本不会有效。
是否有算法可以帮我解决这个问题?也许已经内置的东西?速度对我来说比准确性更重要。如果每边留下一些空白,那将不会是悲剧。
非常感谢你。
答案 0 :(得分:0)
您提到您正在跟踪X和Y坐标的最小值和最大值(这也是您在之前的问题中选择的解决方案)。
以类似的方式,您应该能够找到最小和最大X& Y从擦除事件中协调擦除区域......
当用户删除部分图像时,您可以简单地将已删除部分的坐标与实际图像进行比较,以找到最终的坐标。
尝试查看2个矩形重叠是否存在相关问题: Determine if two rectangles overlap each other?
你可以使用类似的逻辑(虽然略有不同)并找出最终的最小/最大X& Y值。