c#抓屏功能在DPI縮放后,截到的圖片不完整的問題


        /// <summary>
        /// 獲取屏幕快照
        /// </summary>
        /// <returns></returns>
        public static Bitmap GetScreenSnapshot()
        {
            Bitmap bitmap = null;
            try
            {
                Graphics g = Graphics.FromHwnd(IntPtr.Zero);
                //100%的時候,DPI是96;這條語句的作用時獲取放大比例
                float factor = g.DpiX / 96;
                Rectangle rc = new Rectangle(0, 0, (int)(SystemParameters.PrimaryScreenWidth * factor), (int)(SystemParameters.PrimaryScreenHeight * factor));
                bitmap = new Bitmap(rc.Width, rc.Height, PixelFormat.Format32bppArgb);
                using (Graphics memoryGrahics = Graphics.FromImage(bitmap))
                {
                    memoryGrahics.CopyFromScreen(rc.X, rc.Y, 0, 0, rc.Size, CopyPixelOperation.SourceCopy);
                }
            }
            catch (Exception ex)
            {
                NlogHelper.Error("截屏失敗", ex);
            }
            return bitmap;
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM