从 Android.Graphics.Bitmap.GetPixels 获得的 RGB 值与 System.Drawing.Bitmap.GetPixel 略有不同

Posted

技术标签:

【中文标题】从 Android.Graphics.Bitmap.GetPixels 获得的 RGB 值与 System.Drawing.Bitmap.GetPixel 略有不同【英文标题】:RGB values obtained from Android.Graphics.Bitmap.GetPixels are slightly different from System.Drawing.Bitmap.GetPixel 【发布时间】:2015-03-30 20:36:18 【问题描述】:

我正在尝试将 Windows 图像处理应用程序迁移到 android 应用程序。但是当我尝试从同一张 bmp 图片中获取 RGB 值时,我发现值略有变化。例如,一个像素的RGB值在windows app中是137、106、54,而在android app中,它们变为140、105、57。我在windows中获取RGB值的函数是System.Drawing.Bitmap。 GetPixel,在 android 应用程序中,它是 Android.Graphics.Bitmap.GetPixels。这两个函数的返回类型都是“颜色”类型,它定义了 ARGB 值。我用来测试应用程序的手机是运行 android 2.2.2 的旧手机。这个问题的原因是什么?我应该尝试更新版本的android吗?提前感谢所有 cmets。

【问题讨论】:

【参考方案1】:

证明是安卓版本的问题。在我试用了新版本的手机后,RGB值完全匹配Windows系统下的值。我不应该用那部旧手机进行测试。希望这可以帮助遇到同样问题的其他人。

【讨论】:

以上是关于从 Android.Graphics.Bitmap.GetPixels 获得的 RGB 值与 System.Drawing.Bitmap.GetPixel 略有不同的主要内容,如果未能解决你的问题,请参考以下文章

NullPointerException:尝试调用虚拟方法“int android.graphics.Bitmap.getWidth()”

杰克逊没有为 android.graphics.Bitmap 找到合适的构造函数

Canvas: trying to use a recycled bitmap android.graphics.Bitmap@XXX

错误 - 尝试在空对象引用上调用虚拟方法“int android.graphics.Bitmap.getHeight()”

Android java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@

由 java.lang.NullPointerException 引起:尝试在空对象引用上调用虚拟方法“int android.graphics.Bitmap.getWidth()”