1

也许有人可以帮助我。我需要一个 Color32[] 数组,方法是调用 GetPixels32()。这是带有网络摄像头的 QR 码阅读器的一个很好的解决方案。 如何使用 Unity3D 解码二维码

不幸的是,Vuforia 只能给出一个字节数组......

Image.PIXEL_FORMAT mPixelFormat = Image.PIXEL_FORMAT.RGB565;
Image cameraImage = CameraDevice.Instance.GetCameraImage(mPixelFormat);
byte[] pixels = cameraImage.Pixels;

有谁知道如何将 Pixel 字节数组制作成 Color32 数组? 是我在 Vuforia 论坛上的问题。

也许任何人在 Unity for Android 和 iOS 中都有任何其他的二维码解码解决方案。我将非常感谢您的帮助。

编辑:是 unityAnswers 中的相同问题。

4

1 回答 1

2

看起来您正在请求 16 位 R5G6B5 格式的图像数据,所以我希望这就是数据格式:5-6-5 位格式的字节对。因此,将两个字节转换为常规 Color 结构类似于:

color.r = (byte[0] & 0x1f) / (float)(0x1f);
color.g = ((byte[1] & 0x07) | ((byte[0] & 0xe0) >> 5)) / (float)(0x3f);
color.b = ((byte[1] & 0xf8) >> 3) / (float)(0x1f);

然后,您可以通过投射将 Color 转换为 Color32。

也就是说,如果您可以请求 24 位格式而不是 16 位格式的图像数据,那么您可以直接将字节值提供给 Color32 的通道。

于 2012-06-10T21:57:06.110 回答