본문 바로가기
C++ 200제/코딩 IT 정보

C# 이미지리스트 화질 해결 (8비트 -> 24비트, ImageList 사용)

by vicddory 2017. 5. 31.

C# 이미지리스트 화질 해결 (8비트 -> 24비트, ImageList 사용)


ImageList 사용하다 보면, 바로 아래 그림처럼 화질이 떨어져 보일 때가 있습니다. C# ImageList는 별도의 옵션이 없으면 불러올 이미지를 8비트로 보여줍니다. 이미지리스트 단점이네요.


그래서 아래처럼 화질이 떨어져 보이죠.


C# Image List - 저화질[C# 이미지리스트 8비트 저화질]


흑백 이미지 등이야 상관없으나, 그 이상의 화질이 필요하다면 기본값을 변경해야 합니다.


아래의 C# 코드처럼 ColorDepth 옵션을 Depth24Bit로 변경하면 됩니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
using System;
 
public class Class1
{
    public Class1()
    {
       ImageList ilYearCalendar.ImageSize = new Size(21641);
       ilYearCalendar.ColorDepth = ColorDepth.Depth24Bit;
 
       ilYearCalendar.Images.Add(
           Properties.Resources.SubForm___Information___cal2014);
    }
}
cs


화질 문제가 생길 땐, ColorDepth 속성을 변경합니다. 그러면 아래처럼 보기 좋아진 화면을 확인할 수 있습니다.


C# Image List - 고화질[C# 이미지리스트 24비트 고화질]


ColorDepth 옵션은 아래처럼 4, 8, 16, 24, 32비트를 지원합니다.


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
using System;
 
namespace System.Windows.Forms
{
    // System.Windows.Forms.ImageList 컨트롤에 있는
    // 이미지를 표시하는 데 사용되는 색의 수를 지정합니다.
    public enum ColorDepth
    {
        //     4비트 이미지입니다.
        Depth4Bit = 4,
 
        //     8비트 이미지입니다.
        Depth8Bit = 8,
 
        //     16비트 이미지입니다.
        Depth16Bit = 16,
 
        //     24비트 이미지입니다.
        Depth24Bit = 24,
 
        //     32비트 이미지입니다.
        Depth32Bit = 32,
    }
}
 
cs


C# 이미지리스트 화질 해결 (8비트 -> 24비트, ImageList 사용)

댓글