提示コードですがどうすれば画像データを読み込んでそのデータをunsigned char*型で返せるのでしょうか?提示コードは正常に読み込まれておらすglTexImage2D();関数で例外エラーが出てしまいます。どうすればいいのでしょうか?この関数になりが足りていないのでしょうか?
cpp
1//画像ファイルのバイナリを返す。 widht ,height は大きさで必要ない場合は指定しない。 2byte* Game::LoadTexture(const char* str,int *width, int *height) 3{ 4 cv::Mat image; 5 image = cv::imread(str); 6 7 if (image.empty() == true) 8 { 9 printf("image.empty()\n"); 10 return nullptr; 11 } 12 else { 13 printf("load \n"); 14 cv::cvtColor(image, image, cv::COLOR_RGB2BGR); //色空間を変更 15 16 17 int size = image.rows * image.cols; 18 byte* bytes = new byte[size]{ 0 }; 19 std::memcpy(bytes, image.data, size * sizeof(byte)); 20 21 // 画像サイズを取得 22 if (width != nullptr) 23 { 24 *width = image.cols; // 横 25 printf("widht: %d\n",*width); 26 } 27 28 if (height != nullptr) 29 { 30 *height = image.rows; // 縦 31 printf("height: %d\n", *height); 32 33 } 34 35 return bytes; // unsigned char*を返す 36 } 37} 38
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/01/08 08:48 編集
2021/01/08 09:19
退会済みユーザー
2021/01/08 09:23