田瞩 2023-05-12 10:36 采纳率: 0%
浏览 94
已结题

两台Android手机 同一套代码 视效果一致的两张Bitmap 进行getPixel(i, j)得到的结果不一致 这是为什么

两台Android手机 同一套代码 视效果一致的两张Bitmap 进行getPixel(i, j)得到的结果不一致 这是为什么

  • 业务流是将手机上的绘制的布局转为Bitmap获取像素颜色 有色标记位1无色标记为0 然后生成二进制 投送给水墨屏进行绘制显示。

过程:
1、将Android布局xml文件的View生成Bitmap
2、将Bitmap压缩为指定尺寸(这个时候将Bitmap显示到页面的时候视觉效果是正常的)
3、将Bitmap进行getPixel(x,y)
4、这时候同一台设备打印出的结果每次都不一致
但是我的HUAWEIMate30Pro取到的结果一直是正常的

private fun getImagePixel(
        bitmap: Bitmap,
        isRed: Boolean
    ): String {
        println("---------start-----------")
        val rgb = IntArray(3)
        //输出到指定文件
        try {
            val stringBuffer = StringBuffer()
            val testB = StringBuffer()

            // +多少自己取值 值越小表示取的每一个像素越小
            var byteNumber = 0
            for (j in 0 until bitmap.height) {
                for (i in 0 until bitmap.width) {
                    byteNumber++
                    // 转16进制
                    val pixel = bitmap.getPixel(i, j)
                    testB.append(pixel)
                    rgb[0] = pixel and 0xff0000 shr 16
                    rgb[1] = pixel and 0xff00 shr 8
                    rgb[2] = pixel and 0xff
                    if (isRed) {
                        if (rgb[0]==255&&rgb[1]==0&&rgb[2]==0) {
                            stringBuffer.append("1")
                        } else {
                            stringBuffer.append("0")
                        }
                    } else {
                        if (rgb[0]==255&&rgb[1]==255&&rgb[2]==255) {
                            stringBuffer.append("1")
                        } else {
                            stringBuffer.append("0")
                        }
                    }
                }
            }
            println("------------end----------字节数:$byteNumber")
            println("------------end----------字节数:$testB")
            return stringBuffer.toString()
        } catch (e: Exception) {
            e.printStackTrace()
        }
        return ""
    }

这个时候的testB里面的内容就会错位
现在怀疑跟像素分辨率有关 但是我不知道怎么调整,有了解这方面问题原因的嘛 望指教
正常:

img


不正常情况:

img

img

  • 写回答

4条回答 默认 最新

  • 瞬间的未来式 2023-05-12 10:43
    关注
    获得7.50元问题酬金

    这时候同一台设备打印出的结果每次都不一致 ?有没有可能是Bitmap还没完全生成出来,就获取所以不一致
    只是猜测,具体要根据代码分析

    评论

报告相同问题?

问题事件

  • 系统已结题 5月20日
  • 修改了问题 5月12日
  • 修改了问题 5月12日
  • 赞助了问题酬金15元 5月12日
  • 展开全部

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度