我正在寻找一种以有效的方式将屏幕截图转换为char *的方法。 我想过使用位图对象捕获屏幕,然后将位图对象转换为字节数组然后转换为char *,但我找不到任何方法将位图转换为字节数组。 我还想过迭代屏幕捕获中的每个像素并将RGB值保存在一个数组中,但这会产生一个对我来说太大的数组。
最终目标是以最快的方式返回char *对象,而不会返回太大的对象,而char *包含捕获的屏幕数据。
答案 0 :(得分:0)
您没有提供足够的信息/代码来了解您真正想要实现的目标。例如。你打算如何表示颜色系数?无论如何,一种方法是使用opencv库,例如:
cv::Mat mat = cv::imread("PATH/TO/YOUR/FILE.bmp");
char table[mat.rows * mat.cols * 3]; // assuming that we have 3 colour channels
unsigned int index = 0;
cv::MatIterator_<uchar> it, end;
for( it = mat.begin<uchar>(), end = mat.end<uchar>(); it != end; ++it)
table[index++] = *it;