実現したいこと
メモリ上にあるpngファイルから、Gdiplus::Bitmapを作りたいです。
前提
pngファイルを暗号化してbinファイルの書き出された状態から、これを復号化して
pngファイルに破損なく書き出すことはできます。
発生している問題・エラーメッセージ
復号化後、ファイルに書き出さずGdiplus::Bitmap化してウインドウに表示
させる方法が分からず、困っています。
どのような方法がありますか。
該当のソースコード
復号化の方法は、下記の通りです。
C++
1FileDec::FileDec(const char * FilePath) 2{ 3 if (exist_file(FilePath)) 4 { 5 ErrorCode = 0; 6 7 } 8 else 9 { 10 ErrorCode = 1; 11 return; 12 } 13 14//binファイルの読み込み 15 std::ifstream ifs(FilePath, std::ios::in | std::ios::binary); 16 17 if (!ifs) 18 { 19 ErrorCode = 2; 20 return ; 21 } 22 23 24 // ファイルの中身すべてを std::vector<char> に読み込む 25 std::istreambuf_iterator<char> it_ifs_begin(ifs); 26 std::istreambuf_iterator<char> it_ifs_end{}; 27 std::vector<char> input_data(it_ifs_begin, it_ifs_end); 28 if (ifs.fail()) { 29 ErrorCode = 3; 30 } 31 32 33 ifs.close(); 34 35//復号化キー取得 36 const char* key = keyGet(FilePath); 37 38//復号化開始 39 long counter = 0; 40 std::vector<char> result(input_data.size()); 41 for (char var : input_data) 42 { 43 result[counter] = input_data[counter] ^ key[counter%1024]; 44 counter++; 45 } 46 47}
このresultに復号化されたpngファイルがあります。
試したこと
pngファイルをストレージに書き出し、すぐにGdiplus::Bitmap::FromFileで
読み込んでpngを削除することも考えましたが、セキュリティ上よろしくないと判断しました。
補足情報(FW/ツールのバージョンなど)
Microsoft Visual Studio Community 2022 (64 ビット) - Current
Version 17.4.4使用

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/08/11 05:32
2023/08/11 07:19