起動時に約450フレームをロードしようとしていますが、アプリケーションの各ループで、SDカードからではなくメモリからイメージをロードしたいと考えています。これは、フローが約40ミリ秒であるためです。
次のコードを試しましたが、null画像が表示されます。ロードしたい画像は、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;
}