我试图在启动时加载大约 450 帧,然后在我的应用程序的每个循环中,我想从内存中加载图像,而不是从 SDCard 加载图像,因为它非常流 ~ 40 毫秒。
我尝试了以下代码,但我得到了一个空图像。我要加载的图像是灰度图像,1280*960 像素。
我使用以下代码:
QImage images[450];
for (int i=1; i<450;i++)
{
sprintf( imFName, "%s/img_%08i.png", imPath.c_str(), i );
images[i].load(QString(imFName));
images[i].setColorCount(1);
}
for ( int frameIdx = 1; frameIdx <= 450; frameIdx++ )
{
prevImg = curImg;
imIndex++;
printf(" FrameIdx : %d\n", imIndex); fflush(stdout);
sprintf( imFName, "%s/img_%08i.png", imPath.c_str(), imIndex );
double t10 = omp_get_wtime();
QImage curImg;
bool result = curImg.loadFromData((unsigned char*)images[frameIdx].constBits(),images[frameIdx].byteCount());
fprintf(stderr, "result %", result);
if ( curImg.isNull() )
break;
}