也许有人可以帮助我。我需要通过调用GetPixels32()来获得Color32 []数组。对于带有网络摄像头的QR码阅读器,这是一个很好的解决方案。 How to decode QR code using Unity3D
不幸的是,Vuforia只能给出一个字节数组......
Image.PIXEL_FORMAT mPixelFormat = Image.PIXEL_FORMAT.RGB565;
Image cameraImage = CameraDevice.Instance.GetCameraImage(mPixelFormat);
byte[] pixels = cameraImage.Pixels;
有没有人知道如何将Pixel字节数组制作成Color32数组? Here是我在Vuforia论坛上提出的问题。
也许在Unity for Android和iOS中,任何人都有任何其他QR码解码解决方案。 我非常感谢你的帮助。
编辑:Here与unityAnswers中的问题相同。
答案 0 :(得分: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);
然后你可以通过投射将颜色转换为Color32。
这就是说,如果您可以以24位格式而不是16位格式请求图像数据,那么您可以直接将字节值提供给Color32的通道。