2 つの画像を読み込み、それらにいくつかの変換 (スケーリング/回転) を適用し、.NET Graphics クラスを使用して別の画像の特定の時点でそれらを描画するメソッドを作成しています。
私が現在試みているプロセスは次のとおりです。
Load bmp1
Load bmp2
Create graphics object from bmp1
Apply tranformations
Save
Repeat process for bmp2
Instantiate new merged bmp obj
Create graphics object from merged bmp
Draw bmp1 & bmp2 on merged bmp
Save
私は以下のコードでこれをやろうとしています:
// load existing bmps
var bmp1 = new Bitmap(Path.Combine(_staticIconsPath, staticIcon.Filename));
var bmp2 = new Bitmap(Path.Combine(_movableIconsPath, movableIcon.Filename));
// apply transforms to bmp1
var canvas1 = Graphics.FromImage(bmp1);
canvas1.ScaleTransform(0.5f, 0.5f);
canvas1.RotateTransform(45.0f);
canvas1.Save();
// apply transforms to bmp2
var canvas2 = Graphics.FromImage(bmp2);
canvas2.ScaleTransform(0.5f, 0.5f);
canvas2.RotateTransform(45.0f);
canvas2.Save();
// create final merged bmp
var mergedBmp = new Bitmap(590, 590);
mergedBmp.SetResolution(bmp1.HorizontalResolution, bmp1.VerticalResolution);
// draw transformed images on to final bmp
var mergedCanvas = Graphics.FromImage(mergedBmp);
mergedCanvas.DrawImage(bmp1, 0, 0);
mergedCanvas.DrawImage(bmp2, 0, 0);
mergedCanvas.Save();
ただし、最終的な結果は、ロードされた 2 つの元のビットマップであり、期待どおりに両方とも重ねて描画されますが、変換は適用されません。
以前に GDI を使用したり、画像操作を行ったりしたことがないため、従わなければならないプロセスについて基本的なことを誤解していると思います。誰かが私を助けて、正しい方向に向けることができますか?