PILnumpyを使用してイメージの配列を取得しています。
その情報を、QImageのコンストラクタに渡して、Imageオブジェクトをこさえています。
その時、QImageのコンストラクタの第五引数に対して、フォーマットの情報を渡します。
例えば、24bitの画像に対しては、QtGui.QImage.Format_RGB888を渡します。
変換の目安としては、PILの場合、"L"が8bitを、”RGB"が24bitを、"RGBA"が32bitを表わし、modeを取得して、"L"か"RGB"か、"RGBA"かで適用するフォーマットを分けていました。

    #filenameはimageの名前あるいはディレクトリ
    im = Image.open(filename)
    print(im.mode)
    data = np.array(im)
    if im.mode == "RGB":            
        qimagein = QtGui.QImage(data.data, data.shape[1], data.shape[0], data.strides[0], QtGui.QImage.Format_RGB888)
    elif im.mode == "RGBA":
        qimagein = QtGui.QImage(data.data, data.shape[1], data.shape[0], data.strides[0], QtGui.QImage.Format_RGB32)
    elif im.mode == "1":
        qimagein = QtGui.QImage(data.data, data.shape[1], data.shape[0], data.strides[0], QtGui.QImage.Format_Mono)
    elif im.mode == "L":
        qimagein = QtGui.QImage(data.data, data.shape[1], data.shape[0], data.strides[0], QtGui.QImage.Format_Indexed8)
    elif im.mode == "P":
        qimagein = QtGui.QImage(data.data, data.shape[1], data.shape[0], data.strides[0], QtGui.QImage.Format_Indexed8)

この時、PというModeが帰って来たものですから、Pillowのチートシートで確認したところ、
8bitだけれども、パレットモードだということです。
これがオリジナルの8bitのイメージなのですけれども、
画像の説明をここに入力
上記の処理に載せた後に、イメージを描画すると、
画像の説明をここに入力
こんな感じでモノクロになります。
8ビットを描画するために指定するフォーマットとしては、
Format_Indexed8くらいしかなさそうなんですけれども、
あきらめるしかないでしょうか?
PySide QImage
Pillowの公式サイトで、PillowはQt系のImageコンストラクタの処理と連携しており、
"1","L","P","RGB","RGBA"の5つのモードには対応している。
これ以外のモードを扱うには、convertを行えと書いてあるのですが、
"P"も対応しているようです。しかし、肝心の、どのフォーマットに当てはめればいいのかが
わかりません。
"RGB"の場合は問題ないのですが、"RGBA"の場合だと、若干色が変化することもあります。

例えば、
画像の説明をここに入力
が、RGBAとして割り振られたコードを追加した後だと、
画像の説明をここに入力
こんな風に、一部の色が完全に違うものになってしまいます。
これはどうしてなのかも知りたいです。
Pillow ImageQt Module

1.8bitのパレットモードの画像を、オリジナルと同様に表示する方法
2.RGBAの場合に色が変化する原因と、対処法