C# 프로그래밍 Bitmap 사용방법

title-gonggo.png

C# 프로그래밍 Bitmap 사용방법

주성돈기자

Bitmap 클래스는 그래픽 이미지의 픽셀 데이터를 저장하는 클래스입니다. System.Drawing 네임스페이스에 있습니다. 픽셀 단위로 데이터를 저장하고 있기 때문에 크기가 커지면 메모리를 많이 차지하게 됩니다. 우선 가장 간단한 방법으로 이미지 파일을 이용해서 Bitmap을 생성하는 방법을 알아보도록 하겠습니다. 

 

img.png

 

우선 생성자에 파일 경로를 입력하는 예제코드입니다.

 

img.png

 

이렇게 파일의 경로를 이용해서 Bitmap을 생성할 수 있습니다. 해당 클래스에는 픽셀단위로 데이터를 갖고 있기 때문에 이미지의 Width와 Height를 이용해서 각 픽셀에 접근할 수 있습니다. 또 지원하는 파일형식은 bmp, gif, jpg, png 와 같은 이미지 파일형식을 지원합니다. 

그렇다면 for문을 이용해서 Bitmap의 각 픽셀에 접근하는 방법을 알아보도록 하겠습니다.

 

img.png

 

이런식으로 GetPixel과 SetPixel을 이용해서 데이터를 접근하고 수정할 수 있습니다. 

Bitmap을 사용할때 가장 중요한점은 메모리누수인데요. Bitmap에는 Dispose라는 함수가 있습니다. 이 함수를 이용해서 메모리를 해제를 해야 하는데요. 일반적은 C#은 가비지 컬렉터가 알아서 메모리를 해주게 되는데요. Bitmap의 경우에는 따로 메모리를 해제하지 않으면 메모리 누수가 발생합니다. 

방법은 try catch finaly을 이용하는 방법도 있지만, 저는 개인적으로 using 문을 이용하는 것을 선호합니다. 

 

img.png

 

이런식으로 using을 이용하면 using안에 있는 함수를 실행하는 동안 메모리를 잡고 있고, using을 빠져나가는 순간 Dispose함수가 자동으로 호줄이 되면서 메모리를 해제하게 됩니다. 

사용법은 아주 간단하고 잘 동작하는 클래스이지만, 메모리 누수가 발생할 수 있으니까. 주의해서 사용하는 것이 중요합니다. 

0 Comments

최근글


새댓글


Facebook Twitter GooglePlus KakaoStory KakaoTalk NaverBand