【发布时间】:2017-03-11 11:48:56
【问题描述】:
我正在编写一个类似于 TeamViewer 的程序。但是我有一个问题是屏幕分辨率太大。如何降低传入图片的质量?
byte[] ScreenShut()
{
Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width,Screen.PrimaryScreen.Bounds.Height);
Graphics gr = Graphics.FromImage(bmp);
bmp.SetResolution(96.0F,96.0F);
gr.CopyFromScreen(0, 0, 0, 0, new Size(bmp.Width, bmp.Height));
MemoryStream ms = new MemoryStream();
bmp.Save(ms, ImageFormat.Png);
return ms.GetBuffer();
}
【问题讨论】:
-
你试过
new Bitmap(Screen.PrimaryScreen.Bounds.Width / 2,Screen.PrimaryScreen.Bounds.Height / 2)吗?只需创建屏幕分辨率一半大小的位图。一旦这个工作,你可以决定减少大小的百分比。这称为自动缩放。 -
当我这样做时,它会占用屏幕的某个部分。
-
好的;然后继续使用原始代码并稍后调整位图的大小。参考这个:stackoverflow.com/q/10442269/5779732
标签: c# image graph image-resizing