2012-01-25 3 views
0

24 비트 색 System.Drawing.Bitmap을 인덱싱 된 (256 색) 형식으로 변환하려면 어떻게해야합니까? 팔레트를 계산하는 방법을 배우는 데 문제가 있습니다. 픽셀을 반복하고 int[]을 사용하여 다양한 색상을 포함 할 수 있지만 256 색 이상일 때 문제가 발생합니다. 색인 된 형식으로 변환하고 Bitmap에서 256 색 팔레트를 추출 할 수 있습니까?C# 비트 맵을 인덱싱 된 색 형식으로 변환

+0

먼저 인덱싱 된 비트 맵의 ​​종류를 선택해야합니다. 256 색 이하로 시작합니까? –

답변

0

이것은 내장되어 있지 않지만이 경우 외부 .NET 라이브러리를 사용하거나 콘솔에서 ImageMagic을 호출 할 수 있습니다.

+0

사실 WPF에서는 [FormatConvertedBitmap]을 통해 사용할 수 있습니다. (http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.formatconvertedbitmap.aspx) – Mgetz

+0

아하 WPF를 생각하지 않았습니다. – usr

0

시작하기위한 몇 가지 자료.

  • 그래픽 보석 I PP 287-293, "컬러 양자화를위한 간단한 방법 : 옥트리 양자화".

  • B. 쿠르츠. 컬러 디스플레이를위한 최적의 색상 양자화. IEEE 비전 및 패턴 인식 IEEE 회의 소집, 1983, pp. 217-224.

  • 그래픽 보석 II PP. 116-125은 "효율적인 역 색상 표 계산"

이 논문은 다른 기술에 의해 선택된 감소 된 컬러지도에 실제 색상을 매핑 할 수있는 효율적인 방법을 설명합니다 설명 다른 신문에.

  • 그래픽 보석 II PP. 126-133,

  • 주 샤 우 "최적의 컬러 양자화에 대한 효율적인 통계 계산". 동적 프로그래밍 및 주요 분석을 통한 색상 양자화. 그래픽에 대한 ACM 트랜잭션, Vol. 11, No. 4, October 1992, pp 348-372.

1

나는 이전에 같은 도전을 받았다. .Net에서 GDI +를 사용하여 해결할 수 있습니다. 최고 품질의 사용 "옥트리 기반의 양자화"를 http://msdn.microsoft.com/en-us/library/Aa479306

:

이 문서

나에게 (샘플 포함) 많은 도움이되었습니다.

0

WPF는 Windows Imaging Component에 액세스 할 수 있으므로 여기에서 FormatConvertedBitmap을 사용하여 이미지를 새로운 픽셀 형식으로 변환 할 수 있습니다. WIC는 Vista 및 7의 System.Drawing 메서드보다 훨씬 빠르며 더 많은 옵션을 제공합니다. 당신이 직접이 같은 256 컬러 팔레트 인덱스 이미지로 원본 이미지를 변환 할 수 있습니다 비트 맵 복제 방법을 사용하여

2

: 당신은 팔레트 색상에 액세스하려면

Bitmap Result = Source.Clone(new Rectangle(0, 0, Source.Width, Source.Height), PixelFormat.Format8bppIndexed); 

그런 다음, 바로 Result.Palette.Entries 속성을 사용합니다.

관련 문제