我有一個C++ QT應用程序通過TCP套接字發送ARGB值的ByteArray。圖像是100 x 100.問題是,當我讀了ByteArray我似乎無法讓圖像顯示正確。我已經嘗試了很多不同的方法,這裏是AS3代碼,這是我最接近的。AS3將ARGB值的ByteArray轉換爲RGB uint
bitmapData.lock();
for(var x = 0;x<100; x++){
for(var y = 0;y<100; y++){
alphaValue = byteArray.readUnsignedByte();
redValue = byteArray.readUnsignedByte();
greenValue = byteArray.readUnsignedByte();
blueValue = byteArray.readUnsignedByte();
color = redValue << 16 | greenValue << 8 | blueValue;
bitmapData.setPixel(y,x,color);
}
}
bitmapData.unlock();
我現在只是沒有使用alpha值,因爲我不知道該如何處理它。 Qt說:「圖像使用32位RGB格式(0xffRRGGBB)存儲。」我也嘗試過使用readUnsignedInt()
,但那也不起作用。
這是我想要發送的內容以及屏幕上顯示的內容。
發送:收到在Flash
已經很接近了,但不是恰到好處。有誰知道我可能做錯了什麼?
看起來像頻道是混亂的。 – dda 2012-07-21 15:03:00