0

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

我的第一个想法是如果事件到目前为止已经超出了盒子的范围,那么有手写笔记录的运动事件。如果有,我会扩大盒子以容纳它。不幸的是,每次发生对性能不利的运动事件时,我都会看到轮询。我不能只看上下事件,因为用户可以画出像字母 V 这样的东西。

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

有做我想做的事的标准方法吗?我什么都没找到。

4

2 回答 2

2

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

于 2012-11-19T21:00:15.353 回答
1

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

于 2012-11-19T21:01:07.027 回答