2013-06-18 36 views
2

当我对Windows 7当前屏幕进行屏幕截图时,生成的图像在300kb到3.5MB之间。造成相同屏幕尺寸和相同质量的尺寸变化的结果是什么?这怎么能够避免?为什么有些图像比其他图像大10倍?

这是我简单的代码,我使用:

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); 

回答

2

没有关于这两个截屏之间的区别的详细信息我会假设它的PNG文件的压缩策略是由于:

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

也许你拍摄的一些屏幕的信息少得多,可以更有效地压缩。

+0

这是现货。如果你屏幕上的图像覆盖的区域颜色一致,那么与照片相比,它可以被压缩得非常紧密。 – Logarr

+0

他们是桌面非常相似的图像,每个窗口都有一个窗口。看起来图像的尺寸越大,每次会话中拍摄的图像越多。我会尝试使用不支持透明度的差异格式。 – xterminal0

相关问题