我想知道是否可以截取屏幕截图,并且仅在与上一张不同时才保留它。
所以目前我正在使用这个功能。
private static MemoryStream PrintWindow(string prcname)
{
IntPtr hwnd;
using (var proc = Process.GetProcessesByName(prcname)[0])
{
hwnd = proc.MainWindowHandle;
}
Rect rc;
NativeMethods.GetWindowRect(hwnd, out rc);
using (Bitmap bmp = new Bitmap(rc.Width, rc.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb))
{
using (Graphics gfxBmp = Graphics.FromImage(bmp))
{
IntPtr hdcBitmap = gfxBmp.GetHdc();
try
{
NativeMethods.PrintWindow(hwnd, hdcBitmap, 0);
}
finally
{
gfxBmp.ReleaseHdc(hdcBitmap);
}
}
MemoryStream ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
return ms;
}
}
然后我通过网络发送图像并将其显示在另一侧。
现在,我想知道是否可以在拍摄新图像时发送。或者好吧,不是新的,而是另一个图像。假设它需要 10 张图像,并且所有图像看起来都完全相同,并且没有必要使用所有这 10 张图像并发送它们,因为对方可以在最后一张图像上“暂停”直到出现了一个新的图像。
希望您能理解我在这里要解释的内容。