728x90
반응형
이미지의 특정 부분만 잘라서 사용하도록 만들어보자.
먼저 pictureBox1과 pictureBox2를 만들어주고
이미지 resize를 위해 button1 하나를 생성해 주었다.
pictureBox1에는 Size = (450, 450) 의 이미지를 넣고 실행했다.
이미지의 위, 아래로 100씩 잘라내고
Size = (450, 250) 의 이미지로 만들고 싶기 때문에
RESIZE 버튼을 눌러주었을 때의 button1_Click 이벤트 및
resizeImage() 함수를 삽입해 준다.
아래의 코드와 같이 작성해 주었다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | private void button1_Click(object sender, System.EventArgs e) { pictureBox2.Image = resizeImage(pictureBox1.Image); } public static Image resizeImage(Image image) { if(image != null) { Bitmap croppedBitmap = new Bitmap(image); croppedBitmap = croppedBitmap.Clone( new Rectangle(0, 100, image.Width, image.Height - 200), System.Drawing.Imaging.PixelFormat.DontCare); return croppedBitmap; } else { return image; } } | cs |
resizeImage() 함수에서는
자른 이미지를 저장할 Bitmap croppedBitmap 변수를 선언해주고 image 를 저장한 후
Clone 함수를 통해 이미지를 복사해서 저장한다.
Rectangle 함수안의 인자들은
(이미지의 x 시작 위치값, 이미지의 y 시작 위치값, 이미지에 새로 적용할 Width, 이미지에 새로 적용할 Height) 이고,
이 경우에서는 (450, 450) 의 이미지에서 위에 100을 자르고 밑에 100을 자르기 때문에
원래 이미지의 (0, 100) 위치에서 부터 이미지 사이즈 (450, 250) 로 잘라내도록 코드를 작성하였다.
이를 적용하고 실행해주면 아래와 같은 화면으로
이미지가 잘리는 것을 확인할 수 있다.
728x90
반응형
'IT > C#' 카테고리의 다른 글
[C#][Solved] System.ArgumentOutOfRangeException: 'InvalidArgument=Value of '-1' is not valid for 'index'. (0) | 2019.04.03 |
---|---|
[C# winform] TextBox 커서 자동으로 깜빡이게 (0) | 2019.01.10 |
[C#] WinForm 마우스 클릭 이동으로 움직이기 (0) | 2018.11.26 |
[C#] 마우스 휠 이벤트에 따른 확대, 축소 (+ 마우스 위치 확대)(+21.02.22 재수정) (35) | 2018.11.22 |
[C#] OMRON PLC Test Program (6) | 2018.11.15 |