回答編集履歴
1
質問編集に合わせて追記
    
        answer	
    CHANGED
    
    | @@ -36,4 +36,20 @@ | |
| 36 36 | 
             
            で,それで思うような結果が得られたならば,その動作を崩さない範囲で効率化する.
         | 
| 37 37 | 
             
            (思うような結果がこの時点で得られないならば,そもそも話自体がどこかで間違っているのだから,いきなり高効率なコードを書いたところで意味ない)
         | 
| 38 38 |  | 
| 39 | 
            -
            あと,コードを見るに各所に演算が見られるので,それらの演算結果が本当に思っている値になってるのか?という確認作業をしてみるべきでしょう.
         | 
| 39 | 
            +
            あと,コードを見るに各所に演算が見られるので,それらの演算結果が本当に思っている値になってるのか?という確認作業をしてみるべきでしょう.
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            ---
         | 
| 42 | 
            +
             | 
| 43 | 
            +
            [質問編集されたので追記]
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            > QImage tmp_img = QImage(pbImage, W, H, QImage::Format_Indexed8);
         | 
| 46 | 
            +
             | 
| 47 | 
            +
            このコードが妥当か否かは,`QImage` とかいうやつの仕様次第でしょうから,その点を確認すべきです.
         | 
| 48 | 
            +
            現象から察するに,各行の先頭位置が4の倍数にアラインされるようにデータにpaddingみたいなのが必要な型なのではないかと.
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            まとめると,まずあなたがやるべきことは,
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            * QImageの要求するデータフォーマット仕様についてきちんと把握する
         | 
| 53 | 
            +
            * そのうえで,この行で引数に与えられている `pbImage` の内容が正当であることを確認する
         | 
| 54 | 
            +
             | 
| 55 | 
            +
            の2点です.
         | 
