본문 바로가기
C# /WindowsForm

웹 페이지에서 이미지 로드하여 Drawing으로 그리기 예제

by Hwoarang757 2015. 8. 18.

 

 

 

// 1.  URL에서 이미지 다운로드 부분

         /// <summary>

        ///  URL 에서 이미지를 요청 하여 다운로드 합니다

        /// </summary>

        /// <param name="url"></param>

        private byte[] GetWebRequest(string url)

        {

            byte[] downloadData = null;

            try

            {

                WebRequest webRequest = WebRequest.Create(url);

                WebResponse webResponse = webRequest.GetResponse();

                Stream stream = webResponse.GetResponseStream();

 

                byte[] buffer = new byte[1024];

 

                // 사이즈

                int dataLength = (int)webResponse.ContentLength;

 

                // 메모리로 다운로드 작업

                MemoryStream memoryStream = new MemoryStream();

                while (true)

                {

                    int byteRead = stream.Read(buffer, 0, buffer.Length);

 

                    if (byteRead == 0)

                        break;

                    else

                        memoryStream.Write(buffer, 0, byteRead);

                }

 

                downloadData = memoryStream.ToArray();

                stream.Close();

                memoryStream.Close();

 

            }

            catch(Exception ex)

            {

                MessageBox.Show(ex.ToString());

            }

            return downloadData;

        }

 

 

// 2.  Drawing으로 그리는 부분

 

 

 

           /// <summary>

        /// 이미지를 그립니다.

        /// </summary>

        /// <param name="g"></param>

        private void DrawImage(Graphics g)

        {

 

                byte[] imageData = GetWebRequest(this.imageUrl);

                MemoryStream memoryStream = new MemoryStream(imageData);

                Image image = Image.FromStream(memoryStream);

                memoryStream.Close();

 

                g.DrawImage(image, new Rectangle(350,125,130,42));

        }