在画布上绘制背景图像并保存图像
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中有东西时覆盖它。我会怎么做。以上是关于在画布上绘制背景图像并保存图像的主要内容,如果未能解决你的问题,请参考以下文章