2017-01-26 12 views
-1

私はqtで新しく、最初になる新しいプログラムを書きたいと思います。画像がロードされた後に画像のフォーマットとサイズを変更したい。 ARGB1555フォーマットはサポートされているフォーマットでは見つかりません。形式をARGB1555に変換するにはどうすればよいですか?このフォーマットは、ベアメタルMCUをベースとしたhmiプロジェクトで使用するので、メモリが少なくて済むためです。QTで画像フォーマットをARG1555に変換するには?

+0

サイズを変更する - はい、それは画像をスケーリングすることで可能です。フォーマットの変更 - 私は本当にそのような機能があることを本当に疑う。あなたはおそらくそれを自分で行う必要があります(そうしないことを強くお勧めします)。またはサードパーティライブラリを使用してください。 – rbaleksandar

答えて

0

intへQImageの

const uchar * QImage::bits() const 

キャスト(4バイト=画素)の生の画素データにアクセスして、変換のために、この機能を使用することが可能です。

unsigned short ARGB8888toARGB1555(unsigned int c) 
{ 
    return (unsigned short)(((c>>16)&0x8000 | (c>>9)&0x7C00 | (c>>6)&0x03E0 | (c>>3)&0x1F)); 
} 

参考:https://cboard.cprogramming.com/c-programming/118698-color-conversion.html

+0

サポートされているフォーマットでもARGB8888はありません。 –

+0

QImage :: Format_ARGB32イメージは、32ビットのARGBフォーマット(0xAARRGGBB)を使用して格納されます。 8 + 8 + 8 + 8 = 32! – znoopy2k

関連する問題