2009-09-25 3 views
1

웹 응용 프로그램의 일부로 런타임에 이미지를 조작하는 도구가 있습니다..NET을 사용하여 이미지에서 색상 (색상) 프로파일 정보를 제거하려면 어떻게합니까?

일반적으로 정상적으로 작동하지만 Firefox 3.5가 출시되면서 색상 문제가 발생합니다. 필자는 Firefox 3.5가 다른 브라우저가없는 곳에서 임베디드 ICC 컬러 프로파일을 지원하기 때문에 이것이라고 생각합니다.

디스플레이의 일관성을 유지하기 위해 .NET 코드에서 ICC 색상 프로파일을 프로그램 적으로 제거하고 싶습니다.

누구나 올바른 방향으로 나를 가리킬 수 있습니까?

감사합니다, - 크리스

답변

1

추가 조사에서 IE가 일부 감마 보정 정보를 알아 차리고 FireFox 3.5가 ICC 컬러 프로파일에주의를 기울였던 것으로 보입니다.

이 정보는 기본적으로 .NET Framework의 PNG 구현에 의해 추가 된 것으로 보입니다.

.NET에서이 정보를 제거 할 수 있습니다. blogged about it here입니다.

0

이 방법은 일 (나는 그것을 테스트하지 않은), 그것은 잔인한 않을 수 있지만 :

public void StripBitmap(string path) 
{ 
    Bitmap originalBitmap = (Bitmap)Bitmap.FromFile(path); 
    Bitmap strippedBitmap = 
     new Bitmap(originalBitmap.Width, originalBitmap.Height); 
    using (Graphics g = Graphics.FromImage(strippedBitmap)) 
    { 
     g.DrawImage(originalBitmap, 0, 0); 
    } 
    System.Drawing.Imaging.ImageFormat fmt = originalBitmap.RawFormat; 
    originalBitmap.Dispose(); 
    System.IO.File.Delete(path); 
    strippedBitmap.Save(path, fmt); 
    strippedBitmap.Dispose(); 
} 

GDI +에서 비트 맵 클래스를 지원하기 위해 표시되지 않습니다 컬러 프로파일을 지원하지만 지원하는 경우 위 샘플에서 DrawImage 조작으로 이월 될 것이라고는 생각하지 않습니다.

+0

답장을 보내 주셔서 감사합니다,하지만 내 코드는 이미 이런 종류의 일을하고 있습니다. 불행하게도 나는 문제가 어디 있는지 알기 위해 색상 프로파일에 대해 충분히 알지 못합니다. 내가 아는 한은 파이어 폭스 3.5가 색상을 다르게 렌더링하는 원인이되는 컬러 프로파일 부족 * 일 수 있습니다. –

+0

@Chris : 그럴듯한 것 같습니다. 색상 문제가 정확히 무엇인지 보여주는 사진이나 그림을 게시 할 수 있습니까? – MusiGenesis

+0

그건 그렇고, 대부분의 사람들은 "컬러"== "컬러"를 알고 있다고 생각합니다. 우리는 발칸 지역에 선적 될 초과 모음을 저장하고 있습니다. :) – MusiGenesis