我正在寻找一种以有效方式将屏幕截图转换为字符*的方法。我想过使用位图对象捕获屏幕,然后将位图对象转换为字节数组,然后转换为 char*,但我找不到任何方法将位图转换为字节数组。我还考虑过迭代屏幕捕获中的每个像素并将 RGB 值保存在一个数组中,但这会产生一个对我来说太大的数组。
最终目标是以最快的方式返回 char* 对象,该对象不会返回太大的对象,并且该 char* 包含捕获的屏幕的数据。
您没有提供足够的信息/代码来了解您真正想要实现的目标。 例如,您打算如何表示颜色系数? 无论如何,一种方法是使用 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;