[C#] URL로 이미지 다운로드

#C# #CSharp #씨샵 #이미지다운로드로직 #라이브러리

안녕하세요, 배곧동개발자 입니다.

인터넷을 하시다가 이미지를 다운받아 보신적 한번은 있으실 겁니다.

보통 이렇게 우클릭 후 다른이름으로 저장을 하셔서 다운 받으셨을거에요! 이렇듯 필요에 따라서 웹페이지에서 이미지를 다운받아야 하는 경우가 더럿 있습니다.


1. 이미지 다운로드 함수

위와 같이 이미지 다운로드를 구현하는 C# 함수를 하나 소개시켜드릴까해요. 물론 제가 직접 짠건 아니고 저도 긁어다 쓰는겁니다.

private bool imageFileDownload(string uri, string fileName)
{
	HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
	HttpWebResponse response = (HttpWebResponse)request.GetResponse();
	bool bImage = response.ContentType.StartsWith("image",
		StringComparison.OrdinalIgnoreCase);
	if ((response.StatusCode == HttpStatusCode.OK ||
		response.StatusCode == HttpStatusCode.Moved ||
		response.StatusCode == HttpStatusCode.Redirect) &&
		bImage)
	{
		using (Stream inputStream = response.GetResponseStream())
		using (Stream outputStream = File.OpenWrite(fileName))
		{
			byte[] buffer = new byte[4096];
			int bytesRead;
			do
			{
				bytesRead = inputStream.Read(buffer, 0, buffer.Length);
				outputStream.Write(buffer, 0, bytesRead);
			} while (bytesRead != 0);
		}
		return true;
	}
	else
	{
		return false;
	}
}

로직 옆에 보시면 복사하기 버튼 있습니다. 긁어다가 사용하시면 되요!


2. 함수 사용법

사용방법으로는 첫번째 파라미터에 이미지 url을 넣어주시고 두번째 파라미터에 저장하실 파일명(경로포함)을 넣어주시면 됩니다.

// 첫 파라미터는 이미지 주소(URL), 두번째 파라미터는 파일명(경로포함)
imageFileDownload("http://img.co.kr/img.png","/img/download/img.png");

저렇게만 딱 돌려주시면 파일이 저장되는 모습을 보실겁니다. 아주 많은 곳에 활용 할 수 있어요!


3. 마무리

10년 이상 개발로 살다보니 개발 잘한다는 것은 로직을 잘 짜는거는 당연하고 레퍼런스를 얼마나 가지고 있고 빠르게 찾고 활용할 수 있느냐라고 생각해요. 이런 로직들 하나하나 저장해놓으셨다가 필요하실 때 꺼내 쓰시길 바래요.

마지막으로, 부디 불법적인 곳에는 사용하지 말아주시길!

이만, 배곧동개발자 였습니다.

Leave a Comment