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

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

【问题讨论】:

    标签: android


    【解决方案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中有东西时覆盖它。我会怎么做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 2013-03-02
    • 2019-10-19
    • 2018-06-20
    相关资源
    最近更新 更多