タイトル通りですが「デバッグモードは画像がりませんと表示されて Releaseモードでは普通に実行出来る理由が知りたいです。」
デバッグで実行したいのですがどうすればいいのでしょうか?画像データ等の場所はReleaseで実行出来る当たり問題ないと思われます。
cpp
1byte* LoadTexture(const char* str, float& width, float& height,int& channels ) 2{ 3 cv::Mat image; 4 image = cv::imread(str, cv::IMREAD_UNCHANGED); 5 6 7 //printf("image.channels: %d\n", image.channels()); // 3 8 9 if (image.empty() == true) 10 { 11 printf("image.empty()\n"); 12 return nullptr; 13 } 14 else { 15// printf("load \n"); 16 17 cv::cvtColor(image, image, cv::COLOR_BGRA2RGBA); 18 19// printf("channels: %d\n",image.channels()); //4 20 int size = image.rows * image.cols * image.channels(); 21 22 23// printf("size: %d\n", size); 24 byte* bytes = new byte[size]{ 0 }; 25 std::memcpy(bytes, (void*)image.data, (size_t)size); 26 27 // 画像サイズを取得 28 width = (float)image.cols; // 横 29 height = (float)image.rows; // 縦 30 31 channels = image.channels(); //チャンネル数を取得 32 33 34 return bytes; // unsigned char*を返す 35 } 36} 37
Releaseで実行するディレクトリとDebugで実行するディレクトリが異なっていて、画像がReleaseで参照できるパスで指定されているのでは?
Visual studio 2019なのでそれは問題ないと思わるのですがどうすればいいのでしょうか?
Debug/Releaseそれぞれの作業ディレクトリの指定と、画像のパスを提示してみてください。
提示しました。デバッグもReleaseも同じ場所です。
Visual studio 2019の作業ディレクトリの設定はどのようになっているのですか?絶対パスなのですか?
最初に伝えておけば良かったです、問題切り分けのため、パスは絶対パスで指定してみてください。それで上手くいく場合には作業ディレクトリ(実行時の場所)の問題です。絶対パスでに動作しない場合は別の問題がある可能性が高いです。
いや画像がホームディレクトリのようなものみたいなのでAssets/Player.png でReleaseモードなら普通に実行出来るのです。w
作業ディレクトリの設定によってはあり得るとしか言えないですね
もしかしたら、これ https://teratail.com/questions/306831 が原因かもしれません。
回答1件
あなたの回答
tips
プレビュー