【问题标题】:How to check if a Bitmap is empty (blank) on Android如何在Android上检查位图是否为空(空白)
【发布时间】:2015-04-30 07:21:24
【问题描述】:

如何检查 Bitmap 对象是否完全空白,即所有像素都是透明的,每个像素上没有 x-y 循环?

【问题讨论】:

    标签: android bitmap android-bitmap


    【解决方案1】:

    您可以使用以下命令检查您的位图实例(在示例中为 myBitmap)与空实例:

    Bitmap emptyBitmap = Bitmap.createBitmap(myBitmap.getWidth(), myBitmap.getHeight(), myBitmap.getConfig());
    if (myBitmap.sameAs(emptyBitmap)) {
        // myBitmap is empty/blank
    }
    

    【讨论】:

    • @Jeyaseelan Erhm,为至少 29 人工作。也许你可以给我一些细节,所以我可以帮助你?你尝试了什么,你的代码是什么,你的位图来自哪里?
    • 是的@lorenzo-s 我很抱歉负面评论我正在做一个数字签名,如果用户签名我必须把它转换为位图如果用户不签名并将表面留空那个时候空的画布出现在位图中我的意思是如果我检查你的代码就会出现白色图像你在做什么你正在用一个位图创建一个位图并与相同的位图进行比较这里发生的事情是我在空位图中得到白色图像和我的位图也因此在这里失败了
    • 我得到这个错误 java.lang.IllegalArgumentException: can't create mutable bitmap with Config.HARDWARE
    【解决方案2】:

    不是解决问题的有效方法,但它达到了目的 因为即使在文档中我也没有找到解决方案

    查看位图为空时,它的宽度或高度无法获取并引发崩溃,因此这里可能会解决您的问题

           try{
                       int check=bitmap.getWidth();
    
                  // the bitmap is valid & not null or empty 
    
                   }catch (Exception w){
                      // the bitmap, not valid eighter null or empty
    
                   }
    

    希望这会有所帮助:)

    【讨论】:

    • 只检查空值会更好。 bitmap != null
    【解决方案3】:

    您可以很容易地做到这一点,但这取决于应用程序。 如果您有一个应用程序提示用户输入绘图输入,例如签名或类似的东西,您通常会有一个路径的 ArrayList,这些路径被绘制到该视图的画布上。您可以在要返回 BitMap 时进行检查,看看 Paths 的 ArrayList 是否大于 0,如果是则返回 BitMap,否则返回 null。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多