C#에서 이미지 다운로드
-
C#에서
WebClient
클래스를 사용하여 이미지 다운로드 -
C#의
Bitmap
클래스를 사용하여 형식을 모르고 이미지 다운로드 -
C#의
Image.FromStream()
함수를 사용하여 형식을 모르고 이미지 다운로드
이 자습서에서는 C#에서 이미지를 다운로드하는 방법에 대해 설명합니다.
C#에서WebClient
클래스를 사용하여 이미지 다운로드
WebClient
클래스는 C#의 URL로 데이터를 보내고받는 기능을 제공합니다. WebClient.DownloadFile(url, path)
함수는 특정 URL url
에서 파일을 다운로드하여path
에 저장합니다. WebClient.DownloadFile()
함수를 사용하여 URL에서 이미지를 다운로드 할 수 있습니다.
using System;
using System.Net;
using System.Runtime.InteropServices;
namespace download_image {
class Program {
static void download() {
string url =
"https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Breathe-face-smile.svg/1200px-Breathe-face-smile.svg.png";
using (WebClient client = new WebClient()) {
client.DownloadFile(new Uri(url), "Image.png");
}
}
static void Main(string[] args) {
try {
download();
} catch (ExternalException e) {
Console.WriteLine(e.Message);
} catch (ArgumentNullException e) {
Console.WriteLine(e.Message);
}
}
}
}
위의 코드에서 우리는 URL url
에서 이미지를 다운로드하고 C#의client.DownloadFile(new Uri(url), "Image.png")
함수를 사용하여Image.png
경로에 저장했습니다.
C#의Bitmap
클래스를 사용하여 형식을 모르고 이미지 다운로드
위의 예에서는 다운로드 할 이미지 파일 형식을 알아야합니다. 그런 다음 URL에서 다운로드하여 저장할 수 있습니다. 그러나 이미지 파일 형식을 모르는 경우Bitmap
클래스를 사용할 수 있습니다. Bitmap
클래스는 C#에서 이미지 작업을위한 메서드를 제공합니다. 이 메서드는Bitmap
클래스가 처리 할 수있는 모든 형식의 파일을 다운로드하고 저장합니다. Bitmap.Save(path, format)
함수는 비트 맵의 내용을format
형식으로path
의 파일에 기록합니다. ImageFormat
클래스는Bitmap.Save()
함수 내에서 사용하여 저장할 이미지의 형식을 수동으로 지정할 수 있습니다. 다음 코드 예제는 C#에서Bitmap.Save()
함수를 사용하여 형식을 모르고 URL에서 이미지를 다운로드하는 방법을 보여줍니다.
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Net;
using System.Runtime.InteropServices;
namespace download_image {
class Program {
static void SaveImage() {
string url =
"https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Breathe-face-smile.svg/1200px-Breathe-face-smile.svg.png";
WebClient client = new WebClient();
Stream stream = client.OpenRead(url);
Bitmap bitmap = new Bitmap(stream);
if (bitmap != null) {
bitmap.Save("Image1.png", ImageFormat.Png);
}
stream.Flush();
stream.Close();
client.Dispose();
}
static void Main(string[] args) {
try {
SaveImage();
} catch (ExternalException e) {
Console.WriteLine(e.Message);
} catch (ArgumentNullException e) {
Console.WriteLine(e.Message);
}
}
}
}
이미지를 다운로드하고 저장하는SaveImage()
함수를 정의했습니다. WebClient
클래스를 사용하여url
에 웹 요청을했습니다. Stream
클래스를 사용하여client.OpenRead(url)
함수에서 데이터를 읽었습니다. Bitmap
클래스를 사용하여 스트림을 비트 맵 형식으로 변환했습니다. 그런 다음bitmap.Save()
함수를 사용하여ImageFormat.Png
형식으로Image1.png
경로에bitmap
을 저장했습니다.
C#의Image.FromStream()
함수를 사용하여 형식을 모르고 이미지 다운로드
C#의Image.FromStream()
함수를 사용하여 이전 예제와 동일한 작업을 수행 할 수도 있습니다. Image.FromStream()
함수는 C#의 메모리 스트림에서 이미지 파일을 읽습니다. 이를 위해 먼저 URL의 모든 데이터를 바이트 배열로 다운로드 할 수 있습니다. 그런 다음 해당 배열을 MemoryStream
클래스의 객체로로드 할 수 있습니다. 그런 다음Image.FromStream()
함수를 사용하여MemoryStream
클래스의 객체에서 이미지를 읽을 수 있습니다. 그런 다음 C#의 Image.Save(path, format)
함수을 사용하여 특정 형식의 경로에이 이미지를 저장할 수 있습니다. 다음 코드 예제는 C#의Image.FromStream()
함수를 사용하여 형식을 모르고 URL에서 이미지를 다운로드하는 방법을 보여줍니다.
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Net;
using System.Runtime.InteropServices;
namespace download_image {
class Program {
static void SaveImage() {
string url =
"https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Breathe-face-smile.svg/1200px-Breathe-face-smile.svg.png";
using (WebClient webClient = new WebClient()) {
byte[] data = webClient.DownloadData(url);
using (MemoryStream mem = new MemoryStream(data)) {
using (var yourImage = Image.FromStream(mem)) {
yourImage.Save("Image2.png", ImageFormat.Png);
}
}
}
}
static void Main(string[] args) {
try {
SaveImage();
} catch (ExternalException e) {
Console.WriteLine(e.Message);
} catch (ArgumentNullException e) {
Console.WriteLine(e.Message);
}
}
}
}
이미지를 다운로드하고 저장하는SaveImage()
함수를 정의했습니다. webClient.DownloadData(url)
함수에서 반환 된 데이터를 저장하기 위해data
바이트 배열을 사용했습니다. 그런 다음data
를 사용하여MemoryStream
클래스의mem
인스턴스를 초기화했습니다. 그런 다음Image.FromStream(mem)
함수를 사용하여mem
에서 이미지yourImage
를 읽습니다. 마지막으로yourImage.Save("Image2.png", ImageFormat.Png)
함수를 사용하여ImageFormat.Png
형식을 사용하여yourImage
이미지를Image2.png
경로에 저장했습니다.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn