質問編集履歴
1
文章と提示コードを修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,15 +1,21 @@
|
|
1
1
|
提示コードですがアルファチャンネルが適用されないせいかどうやっても画面の透明部分が白くなってしまい立方体に表示されてしまいます。これはどうしたらいいのでしょうか? 色空間のコードコメント部のコードをよく見ましたがこれは正しいです。では何が違うのでしょうか?
|
2
2
|
試しにチャンネル数を+1していましたが出来ませんでした。
|
3
3
|
|
4
|
+
提示コードの//コメント部の数字は出力結果の数値です。
|
5
|
+
|
6
|
+
|
7
|
+
|
4
8
|

|
5
9
|
|
6
10
|
```cpp
|
7
11
|
#include "../Header/Texture.hpp"
|
8
12
|
#include "../Header/Game.hpp"
|
13
|
+
|
9
14
|
byte* LoadTexture(const char* str, float& width, float& height,int& channels )
|
10
15
|
{
|
11
16
|
cv::Mat image;
|
12
17
|
image = cv::imread(str);
|
18
|
+
printf("image.channels: %d\n", image.channels()); // 3
|
13
19
|
|
14
20
|
if (image.empty() == true)
|
15
21
|
{
|
@@ -19,9 +25,9 @@
|
|
19
25
|
else {
|
20
26
|
printf("load \n");
|
21
27
|
|
22
|
-
cv::cvtColor(image,image, cv::COLOR_BGRA2RGBA);
|
28
|
+
cv::cvtColor(image,image, cv::COLOR_BGRA2RGBA);
|
23
29
|
|
24
|
-
printf("channels: %d\n",image.channels());
|
30
|
+
printf("channels: %d\n",image.channels()); //4
|
25
31
|
int size = image.rows * image.cols * image.channels();
|
26
32
|
|
27
33
|
|