Java 从用户绘制的图像中裁剪出空白

Java 从用户绘制的图像中裁剪出空白,java,android,graphics,Java,Android,Graphics,我的应用程序的一部分涉及用户绘制的图像,这些图像稍后将以PDF格式串在一起。用户可以自由使用整个屏幕进行绘制。一旦用户完成绘图,我想在将图像添加到PDF之前删除所有空白。这就是我遇到问题的地方。我想到了两种不同的方法来确定可修剪的空白区域的位置,这两种方法看起来都很笨拙 我的第一个想法是让触控笔记录的运动事件,如果该事件到目前为止已经超出了范围。如果有,我会扩展这个框来容纳它。不幸的是,每次有运动事件时,我都会看到轮询对性能不利。我不能只看上下事件,因为用户可以画字母V之类的东西 然后我想我可以

我的应用程序的一部分涉及用户绘制的图像,这些图像稍后将以PDF格式串在一起。用户可以自由使用整个屏幕进行绘制。一旦用户完成绘图,我想在将图像添加到PDF之前删除所有空白。这就是我遇到问题的地方。我想到了两种不同的方法来确定可修剪的空白区域的位置,这两种方法看起来都很笨拙

我的第一个想法是让触控笔记录的运动事件,如果该事件到目前为止已经超出了范围。如果有,我会扩展这个框来容纳它。不幸的是,每次有运动事件时,我都会看到轮询对性能不利。我不能只看上下事件,因为用户可以画字母V之类的东西

然后我想我可以查看所有像素(使用getPixel())并查看最高、最低、最右边和最左边的黑色像素的位置。同样,这似乎是一种非常低效的方法来找到盒子。我肯定我可以跳过一些像素来提高性能,但我不能跳过太多


有没有一个标准的方法来做我想做的事情?我找不到任何东西。

您可以在编辑器中记录已绘制的像素,更新最大和最小X和Y,然后稍后使用它们来裁剪图像。

您可以在编辑器中记录已绘制的像素,更新最大和最小X和Y,然后稍后使用它们来裁剪图像。

如果用户正在绘图,您是否已经在处理onTouchEvent回调以捕获绘图事件?如果是这样,保留一个minX、maxX、minY和maxY并根据这些值检查每个记录的绘图事件应该不是什么大不了的事。

如果用户正在绘图,您不是已经在处理onTouchEvent回调以捕获绘图事件了吗?如果是这样,保留一个minX、maxX、minY和maxY并根据这些值检查每个记录的绘图事件应该不是什么大问题。

这就是我想要回答的问题。检查最大X和Y,删除任何其他我只想回答的问题。检查X和Y的最大值,并移除其他任何东西。我刚刚尝试了这个,它很好。这感觉很奇怪,但我没有注意到任何性能下降。谢谢。我刚试过这个,没问题。这感觉很奇怪,但我没有注意到任何性能下降。非常感谢。