【问题标题】:Bitmap is returning strange Color values位图返回奇怪的颜色值
【发布时间】:2013-07-21 22:24:29
【问题描述】:

我正在尝试将标准 .jpeg 图像传输到 Color 值数组中,这些值通过 Bitmap 的 getPixels 方法存储为 int 值。我的代码将加载图像并将其数据发送到一维 int 数组,但是当我将它们与原始图像进行比较时,其中一些值没有任何意义。我知道图像正在正确读取,因为我的程序将其打印到屏幕上。有谁知道为什么我的输出包含如此奇怪的值?

        /* Test */
    ImageView image = (ImageView) findViewById(R.id.imageView1);
    Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.testsmall);
    image.setImageBitmap(bMap);

    int[] pixels = new int[bMap.getHeight() * bMap.getWidth()];

    bMap.getPixels(pixels, 0, bMap.getWidth(), 0, 0, bMap.getWidth(), bMap.getHeight());

    int[][] colors2D = new int[bMap.getWidth()][bMap.getHeight()];
    Log.i("State", "Start");
    for (int x = 0; x < bMap.getWidth(); x++)
    {
        for (int y = 0; y < bMap.getHeight(); y++)
        {
            colors2D[x][y] = pixels[x + y * bMap.getWidth()];
            Log.i("Inside", "X: " + x + ", Y: " + y + ", Pixel: " + pixels[x + y * bMap.getWidth()]);
        }
        Log.i("Outside", "New Line");
    }
    Log.i("State", "End");
    /* End Test */

额外信息:

以下包含程序这一部分的 LogCat 输出。奇怪的价值观就在这里。 Android 的 Color 类将 White 定义为 -1,Black 定义为 -16777216。

http://pastebin.com/GxF4j0ef

这是 testSmall.jpg。如您所见,它非常小。尺寸仅为 16x16。

https://www.dropbox.com/s/8hbbopoaozuu9ya/testSmall.jpg

【问题讨论】:

  • 仅供参考-您通常以十六进制表示颜色。这样你就可以轻松地将它分解——前 2 个字符是透明度,接下来 2 个是红色,然后是绿色,然后是蓝色。所以白色是 FFFFFFFF,黑色是 FF000000,红色是 FFFF0000,等等。这样比较容易得多。
  • Android 在表示颜色时会将这些十六进制数表示为二进制。这里的颜色类文档提供了一些示例。 developer.android.com/reference/android/graphics/Color.html
  • Android 是否有任何内置方法可以将二进制数转换为十六进制字符串值?
  • Integer.toHexString(val);
  • 我上面提到的二进制,我的意思是整数值。我只是在后来校对后才发现这个。

标签: android colors bitmap getpixel


【解决方案1】:

事实证明,图像是由 Android 操作系统缩放的。因为我把它放在了drawable文件夹中。事实证明,如果您不想缩放图像,则应将其放在名为 drawable-nodpi 的文件夹中。下面的链接帮助我解决了这个问题。

Bitmap getWidth returns wrong value

【讨论】:

    猜你喜欢
    • 2013-12-25
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多