为什么有些图像比其他图像大10倍?

时间:2013-06-18 19:40:21

标签: c# screen capture

当我拍摄Windows 7当前屏幕的屏幕截图时,生成的图像在300kb到3.5MB之间。是什么导致相同屏幕尺寸和相同质量的尺寸变化?如何避免这种情况?

这是我使用的简单代码:

int screenWidth = Screen.GetBounds(new System.Drawing.Point(0, 0)).Width;
           int screenHeight = Screen.GetBounds(new System.Drawing.Point(0, 0)).Height;

System.Drawing.Bitmap bmpScreenShot = new System.Drawing.Bitmap(screenWidth, screenHeight);               
System.Drawing.Graphics gfx = System.Drawing.Graphics.FromImage((System.Drawing.Image)bmpScreenShot);

gfx.CopyFromScreen(0, 0, 0, 0, new System.Drawing.Size(screenWidth, screenHeight));

bmpScreenShot.Save(@"C:\\Snap.png", System.Drawing.Imaging.ImageFormat.Png);

1 个答案:

答案 0 :(得分:2)

如果没有关于两个屏幕截图之间差异的更多信息,我认为这是由于PNG文件的压缩策略:

http://en.wikipedia.org/wiki/Portable_Network_Graphics#File_size_and_optimization_software

也许您拍摄的某些屏幕中包含的信息少得多,并且可以更有效地进行压缩。