天天看點

.netcf 圖檔區域拷貝[圖檔切割]

前言

  關鍵字:.netcf  BitBlt、圖檔區域拷貝、圖檔切割

  接觸Windows Mobile開發近一個月,陸陸續續有了一些小經驗要和大家分享,希望對剛入門的朋友有所幫助 :)

正文

  一、效果圖

二、實作代碼

        const int SRCCOPY = 0x00CC0020;

        /// <summary>

        /// 拷貝圖檔的某一個區域,生成一個新圖檔

        /// </summary>

        /// <param name="bitSrc"></param>

        /// <param name="rectDest"></param>

        /// <returns></returns>

        public static Bitmap CopyBitmap(Bitmap bitSrc, Rectangle rectDest)

        {

            Bitmap result = new Bitmap(rectDest.Width, rectDest.Height);

            Graphics g1 = Graphics.FromImage(bitSrc);

            Graphics g2 = Graphics.FromImage(result);

            IntPtr hdc1 = g1.GetHdc();

            IntPtr hdc2 = g2.GetHdc();

            BitBlt(hdc2, 0, 0, rectDest.Width, rectDest.Height, hdc1, rectDest.X, rectDest.Y, SRCCOPY);

            g1.ReleaseHdc(hdc1);

            g2.ReleaseHdc(hdc2);

            g1.Dispose();

            g2.Dispose();

            return result;

        }

        /// 使用標明的刷子、源位圖和ROP3碼繪制標明的矩形

        /// 獲得螢幕圖形并将它寫入記憶體中的一個位圖中(截屏)

        /// <param name="hdcDest">目的上下文裝置的句柄 </param>

        /// <param name="nXDest">目的圖形的左上角的x坐标 </param>

        /// <param name="nYDest">目的圖形的左上角的y坐标 </param>

        /// <param name="nWidth">目的圖形的矩形寬度 </param>

        /// <param name="nHeight">目的圖形的矩形高度 </param>

        /// <param name="hdcSrc">源上下文裝置的句柄</param>

        /// <param name="nXSrc">源圖形的左上角的x坐标</param>

        /// <param name="nYSrc">源圖形的左上角的x坐标</param>

        /// <param name="dwRop">光栅操作代碼 </param>

        [DllImport("CoreDLL.dll")]

        public static extern bool BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);

 本文轉自over140 51CTO部落格,原文連結:http://blog.51cto.com/over140/583852,如需轉載請自行聯系原作者

繼續閱讀