В настоящее время я читаю пиксельные данные растрового изображения, используя BitmapData, доступный после блокировки растрового изображения. Метод, который я использую, читает каждый байт цвета отдельно и будет медленнее, чем чтение 4-байтового int непосредственно по заданному указателю. Но, к сожалению, мой битовый массив составляет 24 бит на пиксель, что означает, что на пиксель приходится 3 байта, а не 4. Так есть ли способ быстро прочитать всего 3 байта и преобразовать их в int по заданному адресу указателя?
// read pixel color
byte* Pix = (byte*)bmpScan0 + (y * bmpStride) + (x * 3);
byte R = *(Pix + 2);
byte G = *(Pix + 1);
byte B = *(Pix);
int RGB = ((int)R << 16) | ((int)G << 8) | (int)B;
intс маскировкой 8 старших бит ... Также рассмотрите возможность показать немного больше кода - тот, который у вас есть, похоже, делает много математических для получения следующего байта. - person Alexei Levenkov   schedule 26.02.2013