티스토리 뷰

목차

    반응형

    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 사용)

    반응형