大きな画像データを以下のように読み込んでBMPの文字列に変換して、
別の文字列に連結したのですが。
そうすると、連結後も大きなメモリが確保されると思います。
これをあまりコピーを発生させずに、メモリを余計に消費せずに行いたいのですが、
自分では、これ以上は難しいです。
何かアドバイスあればいただきたいです。
環境はVisualStudio 2019、c++17
※画像データは、strを作成した以降は他では使用しません。
C++
1cv::Mat img = imread("sample.jpg"); // 大きな画像 2vector<uchar> data; 3cv::imencode(".bmp", img, data); 4string str_data(data.begin(), data.end()); 5 6std;;string str = "文字列" + str_data + "文字列";
> これをあまりコピーを発生させずに、メモリを余計に消費せずに行いたいのですが
そこまでシビアにメモリ容量を考えるということは、組み込みやモバイルなどリソースの限られた環境なのでしょうか。
コメントありがとうございます。
パソコンですが、非同期で複数枚画像を同じようにコピーするので、なるべく省エネで行いたいのです。
回答4件
あなたの回答
tips
プレビュー