Если я правильно понимаю ваш вопрос, вы получили изображение в формате RGB, в котором каждый компонент цвета составляет 16 бит, и вы хотите загрузить его с помощью QImage.
Вы можете сделать это следующим образом:
std::vector< unsigned short int > inData;
// load the data into a vector
std::vector< unsigned char > outData( inData.size(), 0 );
std::transfrorm( inData.begin(), inData.end(), outData.begin(), Convert );
// create the image object
QImage image( &outData[0],imwidth, imheight, QImage::Format_RGB32 );
, где функция Convert
определяется следующим образом:
unsigned char Convert( const unsigned short int v )
{
return v >> 8;
}