【问题标题】:Bluring Part of an Image in Android在 Android 中模糊图像的一部分
【发布时间】:2014-04-07 23:54:37
【问题描述】:

有没有办法在android中只模糊图像的一部分?

搜索了很多,但没有找到任何帮助。

大多数示例使用高斯模糊来模糊整个图像视图。

我想允许用户在 imageview 和动作上动态绘制矩形 矩形内的区域应该是模糊的。

任何帮助将不胜感激。

【问题讨论】:

    标签: android image-processing


    【解决方案1】:

    动态模糊图像不是一件容易的事,问 Roman Nurik(Muzei 应用程序背后的人) 他在this Google+ post 上提供了有用的提示,但它适用于动画图像,从焦点到模糊。

    在你的情况下,我会说你需要(大致):

    1. 获取绘制矩形的边界
    2. 获取与之前边界对应的图像部分
    3. 动态模糊上一个图像部分
    4. 在同一画布中,在原始图像之上绘制模糊的图像部分
    5. 设置 onDrag 侦听器以移动绘制的矩形并再次执行第 1 步

    编辑:重新考虑后,每次绘制的矩形移动太重时计算并绘制一个模糊区域,它不会起作用。解决办法大概是这样的:

    1. 模糊整个图像并将其保存在内存中
    2. 获取绘制矩形的边界
    3. 获取模糊图像中与之前边界对应的部分
    4. 在同一画布中,在原始图像之上绘制模糊的图像部分
    5. 设置一个 onDrag 监听器来移动绘制的矩形再次执行步骤 2-3-4

    【讨论】:

    • 确实如此。我更新了我的答案,我想我找到了更好的方法:)
    • 如果您能分享任何示例,那将非常有帮助。
    • 我会这样做。不幸的是,我没有任何例子。
    【解决方案2】:

    将图像视图置于相对布局中。 您检测到用户的触摸事件。 对于他正在绘制的每个矩形,您添加一个图像视图,它的大小叠加到最初的一个(我的意思是在相同的相对布局中),当然还有您的模糊效果。 你会看到你的图像视图逐部分模糊......

    【讨论】:

      【解决方案3】:

      在图像的一半部分放置另一个布局,并为布局设置半透明类型背景。

      【讨论】:

      • 好的,你可以使用 Drawable 的 setAlpha() 方法。它需要一个从 0 到 255 的 int,0 表示完全透明,255 表示完全不透明。
      • 在设置 alpha 之前将背景颜色应用于可绘制对象
      • 您的应用程序正在崩溃。因为图书馆。您希望应用程序在单台设备还是多台设备上运行?
      • 使用我放入的这个库
      • 看来你不知道blur是什么意思!
      【解决方案4】:

      一旦您绘制了矩形集alpha = 0.5 或根据您的需要,您绘制的动态视图将看起来模糊。

      【讨论】:

        【解决方案5】:

        这是模糊的代码: http://shaikhhamadali.blogspot.in/2013/07/gaussian-blur-imagebitmap-in-imageview.html

        在此代码中,computeConvolution3x3 方法用于计算模糊。为了计算模糊,它将位图转换为像素数组,然后应用于这些像素。所以你要做的就是获取你想要模糊的那部分图像的像素数组。

        【讨论】:

        • 它在我的系统上工作。顺便试试这个链接gaussian blur 或搜索gaussian blur in android 你会得到足够的结果
        • 我已经尝试过模糊整个图像。我只想要特定的部分
        • 是的,我知道它会模糊整个图像。所以我提到你必须改变 computeConvlutaion3x3 方法
        猜你喜欢
        • 1970-01-01
        • 2018-04-14
        • 1970-01-01
        • 2016-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-03
        相关资源
        最近更新 更多