所以我对xvfb有一个奇怪的问题。基本上我有一个像xvfb一样运行的应用程序:
public static void Main()
{
GetData();
}
static void GetData()
{
int count = 11;
for (int i = 0; i < count; i++)
{
for (int j = 0; j < count * 2; j++)
{
var s = ((i + j == count) || (j - i == count)) ? "*" : " ";
Console.Write(s);
}
Console.WriteLine();
}
Console.WriteLine("-------------------------------");
Console.WriteLine("------------Reverse------------");
Console.WriteLine("-------------------------------");
for (int i = count; i >= 0; i--)
{
for (int j = count * 2; j >= 0; j--)
{
var s = ((i + j == count) || (j - i == count)) ? "*" : " ";
Console.Write(s);
}
Console.WriteLine();
}
Console.ReadLine();
}
然后我从文件中读取像素数据:
Xvfb :1 -screen 0 1920x1080x24+32 -fbdir /var/tmp &
export DISPLAY=:1
gimp &
出于某种原因,当我打印出缓冲区的前1000个元素时,它会在开始在屏幕上打印实际视觉效果之前打印出一堆随机数据。
非常感谢任何帮助!
答案 0 :(得分:2)
如上所述here,您的文件不仅仅是一个像素数组,而是xwd format。
您可以在特定于平台的xwdfile.h
标头中详细了解此格式,并使用例如xwud实用程序来源,了解它是如何在您之前完成的。