2008-11-10 4 views
2

이미지를 표시 할 수있는 도구 설명 컨트롤러 인 중 하나를 제어, 그래서 그것을 인스턴스화 ebelow 코드 번째 사용하고 있습니다 :.NET 세트 이미지 표시 크기

분명히
Image newImage = Image.FromFile(imagePath); 
e.ToolTipImage = newImage; 

를 인라인 할 수 있지만, 그 순간에 테스트. 문제는 때때로 크기가 잘못된 이미지이며, 디스플레이 크기를 설정하는 방법이 있습니다. 내가 현재 볼 수있는 유일한 방법은 GDI + 또는 이와 유사한 것을 사용하여 이미지를 편집하는 것입니다. 실제 이미지에 영향을주지 않는 디스플레이 크기를 조정하고 싶을 때 많은 추가 처리가 필요합니다.

답변

1

원본에서 이미지 개체를로드하면 높이 및 너비 (및 크기 및 모든 보조 속성)는 읽기 전용입니다. 따라서 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; 

, 그것은했다. (그것은 스크래치 윈폼 프로젝트의 기본 폼의 배경 이미지로. 당신은 usingSystem.Drawing에 대한 진술 및 System.Drawing.Drawing2D을해야한다는 설정 한 후, 바탕 화면 배경 화면 중 하나의하여 200x200 크기를 조정 버전을 만들었습니다. 윈폼에서

+0

내 생각에 디스플레이 크기가 실제 이미지 해상도와 별개이므로 ... 진정으로 별도로 수정할 수 있어야합니다. 이미지 편집은 가능하지만 그렇지 않을 수도 있습니다. – PeteT

+0

불행히도, 아니 ... 희망 (수정 된 버전)이 당신을 위해 밖으로 작동합니다. :) –

0

을 경우 PictureBox 컨트롤 안에 이미지가 포함되어 있으면 PictureBox 컨트롤을 특정 높이/너비로 확대하여 이미지가 맞아야합니다.

적어도 연습 문제를 수행 할 때 Head C# .

+0

감사합니다. 불행히도이를 무시하려면 메서드에서 이미지를 전달해야합니다. – PeteT