마우스 위치에서 이미지를 확대/축소하려고 하면 이미지가 점프하고 재배치된 원점에서 크기 조정에 실패합니다. 마우스 위치로 변환하지 않고도 회전, 크기 조정 및 팬 기능이 올바르게 작동합니다.
마우스 위치에서 이미지를 확대/축소하고 변환하기 위해 다음 전략을 사용합니다.
private void pnl1_Paint(object sender, PaintEventArgs e) { // Apply rotation angle @ center of bitmap e.Graphics.TranslateTransform(img.Width / 2, img.Height / 2); e.Graphics.RotateTransform(ang); e.Graphics.TranslateTransform(-img.Width / 2, -img.Height / 2); // Apply scaling factor - focused @ mouse location e.Graphics.TranslateTransform(mouse.X, mouse.Y, MatrixOrder.Append); e.Graphics.ScaleTransform(zoom, zoom, MatrixOrder.Append); e.Graphics.TranslateTransform(-mouse.X, -mouse.Y, MatrixOrder.Append); // Apply drag (pan) location e.Graphics.TranslateTransform(imgX, imgY, MatrixOrder.Append); // Draw "bmp" @ location e.Graphics.DrawImage(img, 0, 0); }
위 내용은 C#의 마우스 위치에서 이미지를 올바르게 확대/축소하고 이동하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!