PNG格式的屏幕捕获工作,但不是BMP格式

时间:2015-07-24 05:37:09

标签: c# directx slimdx

我使用下面的代码来捕捉运行游戏的屏幕

public static Bitmap CaptureScreen()
{
    DxScreenCapture cap = new DxScreenCapture();
    var surface = cap.CaptureScreen();

    Bitmap png;
    using (DataStream stream = Surface.ToStream(surface, ImageFileFormat.Bmp))
    {
        png = new Bitmap(stream);
        png.Save(@"C:\Temp\MyFile.bmp");
    }

    return png;
}

保存为ImageFileFormat.Bmp时,保存的文件全黑。如果我将格式更改为ImageFileFormat.Png(并将文件扩展名更改为.png),则图像可以保存正常。

为什么我可以保存为PNG格式,但不能保存为BMP格式?

1 个答案:

答案 0 :(得分:1)

此代码应该有效(请参阅complete enum):

png.Save(@"C:\Temp\MyFile.bmp", ImageFormat.Bmp)