2012-05-30 79 views
1

也許有人可以幫助我。我需要通過調用GetPixels32()來調用Color32 []數組。這是帶攝像頭的QR碼閱讀器的最佳解決方案。 How to decode QR code using Unity3DUnity3D:像素字節陣列到Color32陣列(結合ZXing與Vuforia)

Vuforia可以可惜只給一個字節數組...

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

沒有人有任何想法,我怎麼能做出一個像素字節數組的數組Color32? Here是我在Vuforia論壇的問題。

也許任何人都可以在Unity for Android和iOS上使用QR碼解碼。 我將非常感謝您的幫助。

編輯:Here是在unityAnswers相同的問題。

+0

請不要在多個地方張貼相同的東西,而不是每個地方都有交聯。 (我在Unity論壇的RSS feed中看到了這個。) – Jessy

+0

好的,對不起。我編輯我的問題 – Oli

回答

2

它看起來像你要求16位R5G6B5格式的圖像數據,所以我期望這就是數據格式:5-6-5位格式的字節對。因此,將兩個字節到正規的色彩結構是這樣的:

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的通道中。