我需要编写一个应用程序来播放DICOM多帧图像。每个帧都以JPEG格式存储。所有帧都连续存储在一个文件中。现在,我读取每个帧数据并将其传递到以下程序以构建位图进行显示:
Bitmap CreateBitmap(byte[] pixelBuffer, int frameSize)
{
Bitmap image = null;
try
{
long startTicks = DateTime.Now.Ticks;
MemoryStream pixelStream = new MemoryStream(pixelBuffer, 0, frameSize);
image = new Bitmap(pixelStream);
loadTime = DateTime.Now.Ticks - startTicks;
}
catch (Exception ex)
{
Log.LogException(ex);
}
return image;
}
在测试期间,除了上述程序不够优化之外,一切都运行良好。对于800x600的帧大小,该程序所需的时间为0毫秒或15毫秒(我不知道为什么)。对于1024x768的帧大小,所需的时间为15毫秒或31毫秒。我的目标是以60Hz的速度传输图像数据并播放图像(1024x768版本),而且不能丢帧。这意味着我必须在15毫秒内持续解压缩JPEG帧。因此,我的问题是,有没有更好的方法来实现这一点?