EMF 파일이 흑백인지 아니면 색이 있는지 여부를 알 수있는 방법이 있습니까? 색상 팔레트 또는 기타를 확인할 수 있습니다. 어떤 코드로 나를 도울 수있는 누군가? 프로그램에 의해 생성 된 각 파일의 색상 백분율을 알아야하지만, 단색이 아니어야하며 모든 파일의 픽셀 수로 픽셀을 만들고 싶지는 않습니다. 감사메타 파일이 단색인지 또는 색이 있는지 알아 보는 방법은 무엇입니까?
답변
당신이 윈폼를 사용하는 경우, 이것은 쉽게 할 수 있습니다 :
첫째, 비트 맵으로 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 값이 같지 않으면 색상이어야합니다.
mmm ............ – user3799564
@ user3799564 -? – Icemanind
"모든 파일의 픽셀 수로 픽셀을 만들고 싶지 않음" – user3799564
사양을 읽어 보셨습니까? http://msdn.microsoft.com/en-us/library/cc250370.aspx – MarcinJuraszek
http://stackoverflow.com/a/9557852/30594에서 추가 경로를 제공 할 수 있습니까? – Ramesh