원본에서 이미지 개체를로드하면 높이 및 너비 (및 크기 및 모든 보조 속성)는 읽기 전용입니다. 따라서 GDI + 방법을 사용하여 RAM에서 크기를 조정 한 다음 그에 맞게 표시하는 방법을 사용해야합니다.
취할 수있는 접근 방법이 많이 있지만이 문제가 다시 발생하면 재사용 할 수있는 라이브러리로 캡슐화하는 경우 이동하도록 설정됩니다. 이것이 바로 (몇 가지 버그가있을 수 있습니다 IE)에 최적화되어 있지 않습니다,하지만 당신은 그것을 접근하는 방법의 아이디어를 줄 것이다 : 나는 테스트 이런 짓을
Image newImage = Image.FromFile(myFilePath);
Size outputSize = new Size(200, 200);
Bitmap backgroundBitmap = new Bitmap(outputSize.Width, outputSize.Height);
using (Bitmap tempBitmap = new Bitmap(newImage))
{
using (Graphics g = Graphics.FromImage(backgroundBitmap))
{
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
// Get the set of points that determine our rectangle for resizing.
Point[] corners = {
new Point(0, 0),
new Point(backgroundBitmap.Width, 0),
new Point(0, backgroundBitmap.Height)
};
g.DrawImage(tempBitmap, corners);
}
}
this.BackgroundImage = backgroundBitmap;
, 그것은했다. (그것은 스크래치 윈폼 프로젝트의 기본 폼의 배경 이미지로. 당신은 using
System.Drawing
에 대한 진술 및 System.Drawing.Drawing2D
을해야한다는 설정 한 후, 바탕 화면 배경 화면 중 하나의하여 200x200 크기를 조정 버전을 만들었습니다. 윈폼에서
내 생각에 디스플레이 크기가 실제 이미지 해상도와 별개이므로 ... 진정으로 별도로 수정할 수 있어야합니다. 이미지 편집은 가능하지만 그렇지 않을 수도 있습니다. – PeteT
불행히도, 아니 ... 희망 (수정 된 버전)이 당신을 위해 밖으로 작동합니다. :) –