Windows Forms PictureBox

2024. 7. 24. 10:35·C#/Window
반응형

Windows Forms 애플리케이션을 개발할 때 PictureBox 컨트롤은 매우 유용하게 사용됩니다. 이 컨트롤은 이미지를 표시하고 다양한 이미지 처리 기능을 제공합니다. 이번 포스팅에서는 PictureBox의 주요 기능과 사용법을 자세히 살펴보도록 하겠습니다.

PictureBox 기본 사용법

PictureBox 컨트롤은 Visual Studio의 도구 상자에서 쉽게 추가할 수 있습니다. 디자인 모드에서 폼에 드래그&드롭하거나, 코드에서 new PictureBox()를 통해 인스턴스를 생성할 수 있습니다.

 

// 디자인 모드에서 PictureBox 추가
private PictureBox pictureBox1;

// 코드에서 PictureBox 추가
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.Controls.Add(this.pictureBox1);

 

기본적으로 PictureBox는 이미지를 표시할 수 있는 컨트롤입니다. Image 속성에 이미지 파일을 지정하면 해당 이미지가 PictureBox에 표시됩니다.

 

// 이미지 파일 로드
this.pictureBox1.Image = Image.FromFile("C:\\example.jpg");

 

 

이미지 크기 조정

PictureBox는 이미지 크기 조정 모드를 제공합니다. SizeMode 속성을 통해 다양한 크기 조정 옵션을 선택할 수 있습니다.

  • Normal: 실제 이미지 크기로 표시
  • StretchImage: PictureBox 크기에 맞춰 이미지 크기 변경
  • AutoSize: PictureBox 크기를 이미지 크기에 맞춰 자동 조절
  • CenterImage: 이미지를 PictureBox 중앙에 표시
  • Zoom: 이미지를 PictureBox에 맞춰 최대로 확대/축소
this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;

 

 

이미지 처리 기능

PictureBox는 이미지 처리를 위한 다양한 속성과 메서드를 제공합니다. 예를 들어 BorderStyle, BackColor, Cursor 등의 속성을 사용하여 PictureBox의 모양을 사용자 정의할 수 있습니다.

또한 Load 이벤트를 통해 이미지가 로드될 때 추가 작업을 수행할 수 있으며, MouseEnter, MouseLeave, Click 등의 이벤트를 통해 사용자 입력에 대응할 수 있습니다.

 

private void pictureBox1_Load(object sender, EventArgs e)
{
    // 이미지 로드 완료 시 추가 작업 수행
    ApplyImageFilter(pictureBox1.Image);
}

private void pictureBox1_Click(object sender, EventArgs e)
{
    // 사용자 클릭 시 동작 수행
    ZoomImage(pictureBox1.Image);
}

메모리 관리

PictureBox에 이미지를 로드하면 메모리 사용량이 증가할 수 있습니다. 따라서 더 이상 필요하지 않은 이미지는 반드시 메모리에서 해제해 주어야 합니다.

private void Form_Closing(object sender, FormClosingEventArgs e)
{
    // 폼이 닫힐 때 PictureBox의 이미지 해제
    pictureBox1.Image?.Dispose();
}

이처럼 PictureBox는 Windows Forms 애플리케이션에서 다양한 용도로 사용될 수 있는 강력한 컨트롤입니다. 이미지 표시, 크기 조정, 처리 기능 등을 활용하면 UI를 풍부하게 구현할 수 있습니다. 단, 메모리 관리에 유의하여 애플리케이션의 성능을 최적화해야 합니다.

저작자표시 비영리 변경금지 (새창열림)

'C# > Window' 카테고리의 다른 글

Windows Forms의 ComboBox에 아이템 추가하는 방법들  (2) 2024.07.29
.NET 프로젝트의 출력 폴더 이름 변경하기  (0) 2024.07.28
RichTextBox에 텍스트 추가하고 자동 스크롤하기  (0) 2024.07.23
비동기 프로그래밍에서 Task.Delay의 독립적인 실행  (0) 2024.07.22
SendMessage와 PostMessage  (0) 2024.05.26
'C#/Window' 카테고리의 다른 글
  • Windows Forms의 ComboBox에 아이템 추가하는 방법들
  • .NET 프로젝트의 출력 폴더 이름 변경하기
  • RichTextBox에 텍스트 추가하고 자동 스크롤하기
  • 비동기 프로그래밍에서 Task.Delay의 독립적인 실행
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    셀레니움
    리스트
    cv2
    카페24리뷰
    파이썬
    상품 리뷰 크롤링
    codingcommunity
    스크립트 실행
    C#
    rtsp
    라떼우유
    programming101
    Python
    devlife
    스마트스토어리뷰
    codingtips
    긴유통기한우유
    programmerlife
    쇼핑몰리뷰
    ipcamera
    스크립트 실행 순서
    유니티
    믈레코비타멸균우유
    카페24리뷰이관
    list
    learntocode
    appdevelopment
    리뷰이관
    unity
    리뷰관리
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
Windows Forms PictureBox
상단으로

티스토리툴바