ICC 프로파일을 사용하여 색상 변환을위한 약간의 테스트를 작성했습니다. 변환 기능이 천천히 작동합니다!왜 시간이 오래 걸리나요? Color.FromValues
무엇이 문제입니까?
Uri iccUri = new Uri("C:\\temp\\AdobeRGB1998.icc");
private Color AdobeColor(int r, int g, int b)
{
float[] colorValues = new float[3];
colorValues[0] = (float)r/255.0f;
colorValues[1] = (float)g/255.0f;
colorValues[2] = (float)b/255.0f;
return Color.FromValues(colorValues,iccUri);
}
public void Test()
{
Stopwatch sw = new Stopwatch();
sw.Start();
for (int n = 0; n < 10; n++)
{
Color a = AdobeColor(n, n, n);//very very slow
//Color a = Color.FromRgb((byte)n, (byte)n, (byte)n);//very fast
}
sw.Stop();
TimeSpan ts;
ts = sw.Elapsed;
Console.WriteLine("result: {0}\n", ts.Seconds);
}
어떻게 상대 속도를 측정 했습니까? 내가 타이밍 코드를 볼 수 ... –
이 함수에 대한 각 호출은 초 단위로 수행됩니다! – Mixer
왜 더 느리지 않습니까? 당신은 간단한 구조체 초기화 대 파일 IO 및 색상 프로파일 매핑을 수행하고 있습니다. –