这么多时间写了一个颜色转换为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