티스토리 뷰

반응형

09년 1월 기준.

 

// 버튼2개, PictureBox 1개

 

Bitmap fullimg; // 합친 이미지 저장할 곳

private void btnOpen_Click(object sender, EventArgs e) // 파일 열기 버튼

{

OpenFileDialog ofd = new OpenFileDialog();

ofd.Multiselect = true; // 파일 여러개 선택하기

ofd.Filter = "BMP파일(*.bmp)|*.bmp|JPG파일(*.jpg)|*.jpg|PNG파일(*.png)|*.png|GIF파일(*.gif)|*.gif";

if (ofd.ShowDialog() == DialogResult.OK)

{

Bitmap[] img = new Bitmap[ofd.FileNames.Length];

int fullwidth = 0, fullheight = 0; // 합친 이미지의 크기 저장

int[] height = new int[ofd.FileNames.Length]; // 이미지의 세로길이 저장

for (int i = 0; i < ofd.FileNames.Length; i++)

{

img[i] = new Bitmap(ofd.FileNames[i]);

height[i] = img[i].Height;

fullheight += height[i];

int tempwidth = img[i].Width; // 제일 긴 가로의 길이를 저장하기 위하여

if (fullwidth < tempwidth)

{

fullwidth = tempwidth;

}

}

fullimg = new Bitmap(fullwidth, fullheight);

Graphics g = Graphics.FromImage(fullimg); // 그래픽 객체 가져오기

int drawheight = 0;

for (int i = 0; i < ofd.FileNames.Length; i++)

{

if (i == 0)

{

g.DrawImageUnscaled(img[i], 0, 0);

}

else

{

drawheight += height[i - 1];

g.DrawImageUnscaled(img[i], 0, drawheight); // 이미지 이어서 그리기

}

}

pictureBox1.Image = fullimg; // 합친 이미지를 picrureBox에 보이기

}

}

private void btnSave_Click(object sender, EventArgs e) // 저장 버튼

{

SaveFileDialog sfd = new SaveFileDialog();

sfd.Filter = "BMP파일(*.bmp)|*.bmp|JPG파일(*.jpg)|*.jpg|PNG파일(*.png)|*.png|GIF파일(*.gif)|*.gif";

sfd.FileName = "*.bmp";

if (sfd.ShowDialog() == DialogResult.OK)

{

switch (sfd.FilterIndex)

{

case 1:

sfd.DefaultExt = "bmp";

fullimg.Save(sfd.FileName, System.Drawing.Imaging.ImageFormat.Bmp);

break;

case 2:

sfd.DefaultExt = "jpg";

fullimg.Save(sfd.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);

break;

case 3:

sfd.DefaultExt = "png";

fullimg.Save(sfd.FileName, System.Drawing.Imaging.ImageFormat.Png);

break;

case 4:

sfd.DefaultExt = "gif";

fullimg.Save(sfd.FileName, System.Drawing.Imaging.ImageFormat.Gif);

break;

}

}

}

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/01   »
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
글 보관함