본문 바로가기
프로그래밍/C# (WinForms)

WinForms ] ImageList와 ColorDepth 속성

by eteo 2023. 5. 7.

 

 

 

ImageList는 이미지를 저장하고 관리하는 데 사용되는 컨트롤인데, ImageList를 사용하면 다른 컨트롤에서 이미지를 쉽게 가져올 수 있으며, 동일한 이미지를 여러 컨트롤에서 사용할 수 있다.

 

 

도구상자에서 imageList를 추가하면 하단에 imageList가 나타난다.

 

우클릭 - 이미지 선택

 

 

 

아래 이미지 컬렉션 편집기에서 imageList의 멤버를 추가할 수있다. 0번 인덱스부터 추가되며 순서 변경이 가능하다.

 

 

이렇게 추가된 이미지 리스트를 Button, CheckBox, ComboBox, Label, ListBox, ListView, MenuStrip, PictureBox, RadioButton, TabControl, ToolBar 컨트롤 등 다양한 컨트롤에서 불러다 쓸 수 있다.

 

 

 

 

 

 

 

 

사용시 주의할 점은 imageList를 처음 생성하면 ColorDepth의 초기값이 8Bit이기 때문에 24bit나 32bit로 바꿔주는 것이 좋다.

 

 

 

 

 

 

 

 

 

ColorDepth 속성

 

표현 가능한 색의 수를 의미하는 색심도를 나타낸다.

 

  • Depth4Bit: 4비트. 이미지는 16색의 표준 팔레트를 사용한다.
  • Depth8Bit: 8비트 . 이미지는 256색의 표준 팔레트를 사용한다.
  • Depth16Bit: 16비트. 이미지는 5-6-5 비트 RGB 색상을 사용한다.
  • Depth24Bit: 24비트. 이미지는 8비트 RGB 색상을 사용한다.
  • Depth32Bit: 32비트 RGBA 포맷. 이미지는 8비트 RGB 색상 및 8비트 알파 채널을 사용한다.

 

24비트 RGB 포맷의 경우 각 픽셀은 24비트의 색상 정보를 가지고 있는데 이 24비트는 빨강(R), 초록(G), 파랑(B) 각 8비트의 세 가지 색상 채널로 이루어진다. 각 색상 채널은 0부터 255까지의 값 중 하나를 가질 수 있으며, 채널의 값을 조절하여 색상을 표현한다. 이때, 조합가능한 경우의 수가 총 1677만 가지이다.

 

RGB 채널 각각의 값이  0일 때 해당 픽셀은 검은색에 가깝고, 255일 때 해당 픽셀은 흰색에 가까워진다. RGB 색상 모델에서 (255, 0, 0)은 완전한 빨간색, (0, 255, 0)은 완전한 녹색, (0, 0, 255)는 완전한 파란색을 나타내며, 세 채널의 값이 (255, 255, 255)일 때 해당 픽셀은 완전한 흰색이 되고, (0, 0, 0)일 때 해당 픽셀은 완전한 검은색이 된다.

 

32비트 RGBA포맷의 경우 알파 채널을 이용하여 투명도 정보를 나타낼 수 있다. 알파 채널이 0일 때 해당 픽셀은 완전히 투명하고, 255일 때 해당 픽셀은 완전히 불투명함을 의미한다. 예를 들어, RGBA 색상 모델에서 (255, 0, 0, 128)은 완전한 빨간색이지만 반투명한 상태를 나타낸다.