본문 바로가기

C# Form

[C# Form] PictureBox와 OpenFileDialog

PictureBox와 OpenFileDialog 를 이용해서 다음과 같은 이미지 뷰어를 만들어 보겠습니다.


도구상자에서 MenuStrip과 PictureBox를 추가하고 PictureBox는 부모와 도킹을 선택하여 배치합니다. OpenFileDialog를 추가합니다.

이미지선택 메뉴를  누르면 OpenFileDialog가 팝업되고 파일을 선택하면 openFileDialog1.FileName으로 받게 됩니다.

PictureBox에는 SizeMode 속성이 있는데, Normal, StretchImage, AutoSize, Zoom, CenterImage의 5가지를 선택할 수 있습니다. 이 5가지를 SizeMode선택 메뉴의 하위메뉴로 넣습니다.

프로그램 소스는 다음과 같습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace p233_PictureBox
{
    public partial class Form1 : Form
    {
        string path = AppDomain.CurrentDomain.BaseDirectory;    // 현재 App이 실행되고 있는 경로
 
        public Form1()
        {
            InitializeComponent();
            this.Text = "Image Viewer";            
        }
 
        private void 종료ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }
 
        private void normalToolStripMenuItem_Click(object sender, EventArgs e)
        {
            pictureBox1.SizeMode = PictureBoxSizeMode.Normal;
        }
 
        private void stretchImageToolStripMenuItem_Click(object sender, EventArgs e)
        {
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
        }
 
        private void autoSizeToolStripMenuItem_Click(object sender, EventArgs e)
        {
            pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
        }
 
        private void zoomToolStripMenuItem_Click(object sender, EventArgs e)
        {
            pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
        }
 
        private void centerImageToolStripMenuItem_Click(object sender, EventArgs e)
        {
            pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;
        }
 
        private void 이미지선택ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter = "이미지 파일|*.jpg";
            openFileDialog1.Title = "이미지 열기";
            openFileDialog1.FileName = "";
            openFileDialog1.InitialDirectory = path;    // 현재 작업중인 디렉토리부터 표시
            openFileDialog1.ShowDialog();
            if (openFileDialog1.FileName != "")
            {
                //MessageBox.Show(openFileDialog1.FileName);
                pictureBox1.Image = new Bitmap(openFileDialog1.FileName);
            }
        }
    }
}
cs


실행화면은 다음과 같습니다. 아래 사진에서의 SizeMode는 CenterImage 입니다.



beeeye Dmu