回答編集履歴
5
画像ずれ説明更新
test
CHANGED
@@ -34,9 +34,15 @@
|
|
34
34
|
|
35
35
|
各ライン毎のバイト数が4の倍数に満たない場合は0パディングされます。
|
36
36
|
|
37
|
-
このコードで24bitBMPファイルを読むと幅が4の倍数でない
|
37
|
+
このコードで24bitBMPファイルを読むとRGBが3バイトなので、画像の幅が4の倍数でない場合はずれますね。
|
38
38
|
|
39
39
|
```C++
|
40
|
+
|
41
|
+
typedef struct {
|
42
|
+
|
43
|
+
unsigned char r, g, b;//24Bitなので
|
44
|
+
|
45
|
+
}RGB;
|
40
46
|
|
41
47
|
RGB *bits = (RGB*)malloc(sizeof RGB * bi.biWidth * bi.biHeight);//ピクセルデータを確保する
|
42
48
|
|
4
リンク追加
test
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
BMPファイルは`RGB`ではなく、`BGR`の順で格納されています。
|
2
2
|
|
3
3
|
`B`と`R`の並び順を入れ替えるのではなく、`glTexImage2D`の引数で`GL_RGB`の代わりに`GL_BGR`を指定すればよいのでは?
|
4
|
+
|
5
|
+
[glTexImage2D](http://docs.gl/gl4/glTexImage2D)
|
4
6
|
|
5
7
|
|
6
8
|
|
3
パディング説明更新
test
CHANGED
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
|
32
32
|
|
33
|
-
各ライン毎
|
33
|
+
各ライン毎のバイト数が4の倍数に満たない場合は0パディングされます。
|
34
34
|
|
35
35
|
このコードで24bitBMPファイルを読むと幅が4の倍数でないとずれますね。
|
36
36
|
|
2
0パディングについて追記
test
CHANGED
@@ -27,3 +27,17 @@
|
|
27
27
|
If biCompression is BI_JPEG or BI_PNG, the biHeight member specifies the height of the decompressed JPEG or PNG image file, respectively.
|
28
28
|
|
29
29
|
```
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
各ライン毎に4の倍数に満たない場合は0パディングされます。
|
34
|
+
|
35
|
+
このコードで24bitBMPファイルを読むと幅が4の倍数でないとずれますね。
|
36
|
+
|
37
|
+
```C++
|
38
|
+
|
39
|
+
RGB *bits = (RGB*)malloc(sizeof RGB * bi.biWidth * bi.biHeight);//ピクセルデータを確保する
|
40
|
+
|
41
|
+
fread(bits, sizeof RGB, bi.biWidth * bi.biHeight, pFile);//ピクセルデータを読み込んだ
|
42
|
+
|
43
|
+
```
|
1
誤字修正
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
`BITMAPINFOHEADER`の`biHeight`が
|
11
|
+
`BITMAPINFOHEADER`の`biHeight`が正の場合は下から上に向かって格納されています。
|
12
12
|
|
13
13
|
[BITMAPINFOHEADER](https://msdn.microsoft.com/ja-jp/windows/dd183376(v=vs.80))
|
14
14
|
|