這麼多時間寫了一個顏色轉換爲ICC配置文件的測試。 轉換功能工作速度慢1000倍!爲什麼功能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);
}
你是如何測量相對速度的?我看不到任何時間代碼... – 2013-02-10 10:14:06
每次調用此函數都會在幾秒鐘內完成! – Mixer 2013-02-10 10:21:44
爲什麼它不會變慢?你正在做文件IO和顏色配置文件映射與簡單的結構初始化。 – 2013-02-10 10:24:26