2015-01-12 4 views
0

EMF 파일이 흑백인지 아니면 색이 있는지 여부를 알 수있는 방법이 있습니까? 색상 팔레트 또는 기타를 확인할 수 있습니다. 어떤 코드로 나를 도울 수있는 누군가? 프로그램에 의해 생성 된 각 파일의 색상 백분율을 알아야하지만, 단색이 아니어야하며 모든 파일의 픽셀 수로 픽셀을 만들고 싶지는 않습니다. 감사메타 파일이 단색인지 또는 색이 있는지 알아 보는 방법은 무엇입니까?

+0

사양을 읽어 보셨습니까? http://msdn.microsoft.com/en-us/library/cc250370.aspx – MarcinJuraszek

+0

http://stackoverflow.com/a/9557852/30594에서 추가 경로를 제공 할 수 있습니까? – Ramesh

답변

0

당신이 윈폼를 사용하는 경우, 이것은 쉽게 할 수 있습니다 :

첫째, 비트 맵으로 EMF 파일을로드 :이 기능을 사용하여

Image img = new Metafile(@"MyFile.emf"); 
var bmp = new Bitmap(img); 

이 그럼 당신은 그것의 색깔 경우 테스트 할 수 있습니다 :

bool isColor = IsColor(bmp); 

private bool IsColor(Bitmap bmp) 
{ 
    for (int x = 0; x < bmp.Width - 1; x++) 
    { 
     for (int y = 0; y < bmp.Height - 1; y++) 
     { 
      Color c = bmp.GetPixel(x, y); 
      if (!(c.R == c.B && c.R == c.G)) 
       return true; 
     } 
    } 

    return false; 
} 

기본적으로 각 픽셀을 테스트합니다. 파일이 회색조 또는 흑백 인 경우 지정된 픽셀의 RGB 값은 동일한 값으로 설정됩니다. 픽셀 중 RGB 값이 같지 않으면 색상이어야합니다.

+0

mmm ............ – user3799564

+0

@ user3799564 -? – Icemanind

+0

"모든 파일의 픽셀 수로 픽셀을 만들고 싶지 않음" – user3799564

관련 문제