gpt4 book ai didi

android - Bitmap.getpixel 没有读取正确的颜色?

转载 作者:行者123 更新时间:2023-11-29 14:03:42 24 4
gpt4 key购买 nike

我正在尝试制作一个非常简单的图 block 引擎。但是,使用 Bitmap.getpixel(x,y)并不总是正确匹配颜色。 0xFFFFFFFF 似乎还不错, 0xFF000000 , 0xFF189600 , 和 0xFF18FF00 , 但是 0xFF186600 有问题.我尝试将其更改为多种不同的相似颜色,但它似乎仍然无法正确读取。我正在与一个简单的 switch 语句进行比较。这是我的方法的代码

public void LoadLevel(Canvas canvas, int levelName)
{

Bitmap level = BitmapFactory.decodeResource(getResources(), levelName);
Bitmap startTile = BitmapFactory.decodeResource(getResources(), R.drawable.starttile);

canvas.drawColor(Color.WHITE);

int drawX = 0;
int drawY = 0;

for(int y = 0; y < level.getHeight(); y++)
{
for(int x = 0; x < level.getWidth(); x++)
{
switch(level.getPixel(x, y))
{
case 0xFF000000: break;

case 0xFFFFFFFF:
canvas.drawBitmap(startTile, drawX, drawY, null);
break;

case 0xFF189600:
canvas.drawBitmap(startTile, drawX, drawY, null);
break;

case 0xFF18FF00:
canvas.drawBitmap(startTile, drawX, drawY, null);
break;

case 0xFF186600:
canvas.drawBitmap(startTile, drawX, drawY, null);
break;
}

Log.d("Color", Integer.toString(level.getPixel(x, y)));

drawX += 128;
}
drawX = 0;
drawY += 128;
}
}

根据日志,颜色为“-15177472”。我不确定实际上是什么颜色......所以我不确定是否-15177472 == 0xFF186600

我做错了什么没有得到像素? android正在改变图像吗?是否有我应该使用的安全颜色?

最佳答案

-151774720xFF186900。请注意 9 数字,而不是您要查找的 6

你从哪里得到这些预期值,你是如何加载位图的?如果您在绘图程序中创建位图,然后将它们加载到您的 Android 应用程序中,您可能会发现它们被解压缩为 16bpp,在这种情况下,将像素值转换回 32bpp 时会有一些精度损失 getPixel()

关于android - Bitmap.getpixel 没有读取正确的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8290379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com