在画布上绘制背景图像并保存图像

Posted

技术标签:

【中文标题】在画布上绘制背景图像并保存图像【英文标题】:Drawing on Canvas with an image on background and save image 【发布时间】:2012-03-13 17:59:56 【问题描述】:

我想从 SD 卡打开图像,而图像正在显示,我想使用触摸和运动事件在其上绘制并将图像保存回来。任何帮助或指向任何示例代码的指针都会有很大帮助。

【问题讨论】:

【参考方案1】:

我相信有很多方法,还有很多比这更好的方法,但我会这样做:

据我了解,您需要在活动中将图像从 SD 卡打开到位图再到图像视图。 http://www.higherpass.com/android/Tutorials/Working-With-Images-In-Android/2/

然后您需要逐个像素地获取颜色的每个值,以便您可以在 onTouchEvent 中更改它。 http://developer.android.com/reference/android/graphics/Bitmap.html 见 getPixel() 和 setPixel()

用户可以在上面画东西。您需要一些方法来捕获运动事件,并通过获取所有像素来更改刚刚获得的图像的数据模型。您可以使用表面视图或类似的东西。 Android: creating a Bitmap with SurfaceView content

最后您需要将图片保存到 SD 卡中。 Android write to sd card folder

希望这会有所帮助

【讨论】:

我可以将图像从 SD 卡打开到位图到图像视图。当我在屏幕上看到图像时,我触摸屏幕并获得运动事件。在运动事件上​​应该做什么。我是否应该在现有位图上执行 setPixel,然后绘制此位图。如何将触摸位置转换为要修改的位图像素。当我在触摸事件的 X 和 Y 坐标上设置像素时,我得到了异常。有没有其他方法可以在现有图片上绘制。 是的,在画布上绘制,并更改数据结构中的像素,而不是实际图片。然后在用户想要保存时创建一张新图片。 你能告诉我一个示例代码如何做到这一点。我正在关注运动事件 使用RelativeLayout 将您正在绘制的画布放置在原始照片上,并首先使画布透明。然后将surfaceview和原始图片中每个像素的数据放在一个2D数组中,当surface view中有东西时覆盖它。我会怎么做。

以上是关于在画布上绘制背景图像并保存图像的主要内容,如果未能解决你的问题,请参考以下文章

无法在画布中设置背景图像

如何在织物画布中使用背景图像获取绘图路径中的图像?

在 3 层画布上绘制图像并保存

如何将“div”保存为图像? [复制]

android图像绘制——画布保存为图片

颤振形状调整大小并在图像背景画布上拖动