WebBrowser - 해당되는 글 1건
        /// <summary>
        /// URL에 해당하는 웹페이지의 이미지를 가져온다.
        /// </summary>
        /// <param name="URL">가져오고자 하는 URL</param>
        /// <returns>해당 웹페이지의 이미지</returns>
        public Bitmap getImageFromURL(String URL)
        {
            // WebBrowser를 생성하고 자동으로 Dispose해주기 위해 Using Keyword를 사용
            using (WebBrowser WebBrowser = new WebBrowser())
            {
                // 캡쳐될 화면에 스크롤바를 포함시키지 않을것이므로.
                WebBrowser.ScrollBarsEnabled = false;
                WebBrowser.TabStop = false;

                try
                {
                    Bitmap Result = null;   // 웹페이지 이미지가 저장될공간

                    // 웹페이지가 모두 로드가 되었을때 발생하는 이벤트.
                    // 간단하게 함수하나로 해결하기 위해 인라인 Delegate를 사용
                    WebBrowser.DocumentCompleted +=
                        delegate(object sender, WebBrowserDocumentCompletedEventArgs e)
                    {
                        // WebBrowser가 정말로 Complate되었는지 확인하기 위함
                        if (WebBrowser.ReadyState != WebBrowserReadyState.Complete) return;

                        // 문서의 크기만큼 웹브라우저의 크기를 조절 (스크롤바 안생기게하려고)
                        int ScrollWidth = WebBrowser.Document.Body.ScrollRectangle.Width;
                        int ScrollHeight = WebBrowser.Document.Body.ScrollRectangle.Height;
                        Size PageSize = new Size(ScrollWidth, ScrollHeight);
                        WebBrowser.Size = PageSize;

                        // 문서 크기만큼의 이미지를 생성
                        Result = new Bitmap(PageSize.Width, PageSize.Height);

                        // 위에서 생성한 이미지에 WebBrowser Rendering (.Net 2.0이상에서만 지원)
                        WebBrowser.DrawToBitmap(Result, new Rectangle(Point.Empty, PageSize));

                    };

                    // 요청한 URL로 이동
                    WebBrowser.Navigate(URL);

                    // Result에 데이터가 들어올때 까지 대기후 리턴
                    while (Result == null) Application.DoEvents();

                    
                    return Result;

                }
                catch (Exception)
                {
                    return null;
                }
            }
        }
저작자 표시
신고
Trackback 0 | Comment 0

강군v's Blog is powered by Daum & tistory

 

티스토리 툴바