2 개의 이미지를로드하고 일부 변형을 적용한 후 (스케일링/회전), .NET Graphics 클래스를 사용하여 다른 이미지의 특정 지점에 그립니다. . 나는 아래의 코드를 사용하여이 작업을 수행하려고 시도하고변환 적용 및 GDI 및 .NET을 사용하여 비트 맵 결합
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();
그 모두로드 된 상태로 예상대로 서로 위에 그려지지만 변형은 적용되지 않습니다.
GDI를 사용하거나 이미지 조작을 한 적이 한번도 없었으므로 따라야 할 프로세스에 대한 근본적인 오해가 있다고 생각합니다. 누구든지 나를 도울 수 있고 올바른 방향으로 나를 가리킬 수 있습니까?
시도해 보셨습니까? –
아아아, 나는 내가 지금 놓치고 있었던 것을 본다. 코드를 업데이트했는데 지금은 작동하고 있습니다. 당신의 도움을 주셔서 감사합니다. – jcvandan