티스토리 뷰
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;
}
}
}
'Study' 카테고리의 다른 글
Java(자바) duration(기간) (0) | 2024.01.27 |
---|---|
Database(데이터베이스) Term(용어) 관련 (1) | 2024.01.27 |
AWS(Amazon Web Service, 아마존웹서비스) CLI(Command Line Interface, 씨엘아이) Install(설치) 관련 (0) | 2024.01.27 |
VBScript(브이비스크립트) Key Excute(키 실행) (0) | 2024.01.27 |
C(씨) bit(비트) operation(연산) 관련 (1) | 2024.01.27 |