Télécharger l'image en C#
-
Télécharger l’image avec la classe
WebClient
enC#
-
Télécharger l’image sans connaître le format avec la classe
Bitmap
enC#
-
Télécharger l’image sans connaître le format avec la fonction
Image.FromStream()
enC#
Ce tutoriel abordera les méthodes de téléchargement d’une image en C#.
Télécharger l’image avec la classe WebClient
en C#
La classe WebClient
fournit des fonctionnalités d’envoi et de réception de données depuis une URL en C#. La fonction WebClient.DownloadFile(url, path)
télécharge un fichier à partir d’une URL url
particulière et l’enregistre dans le path
. On peut utiliser la fonction WebClient.DownloadFile()
pour télécharger une image depuis une 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);
}
}
}
}
Dans le code ci-dessus, nous avons téléchargé une image depuis l’URL url
et l’avons sauvegardée dans le chemin Image.png
avec la fonction client.DownloadFile(new Uri(url), "Image.png")
en C#.
Télécharger l’image sans connaître le format avec la classe Bitmap
en C#
Dans l’exemple ci-dessus, nous devons connaître le format de fichier image à télécharger; ensuite, nous pouvons le télécharger à partir de l’URL et l’enregistrer. Mais, si nous ne connaissons pas le format du fichier image, nous pouvons utiliser la classe Bitmap
. La classe Bitmap
fournit des méthodes pour travailler avec des images en C#. Cette méthode va télécharger et sauvegarder les fichiers dans tous les formats que la classe Bitmap
peut gérer. La fonction Bitmap.Save(path, format)
écrit le contenu de notre bitmap dans un fichier dans le path
au format format
. La classe ImageFormat
peut être utilisée dans la fonction Bitmap.Save()
pour spécifier manuellement le format de l’image à enregistrer. L’exemple de code suivant nous montre comment télécharger une image depuis une URL sans connaître le format avec la fonction Bitmap.Save()
en C#.
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);
}
}
}
}
Nous avons défini la fonction SaveImage()
qui télécharge et enregistre une image. Nous avons utilisé la classe WebClient
pour faire des requêtes web à l ‘url
. Nous avons utilisé la classe Stream
pour lire les données de la fonction client.OpenRead(url)
. Nous avons utilisé la classe Bitmap
pour convertir le flux au format bitmap. Nous avons ensuite utilisé la fonction bitmap.Save()
pour enregistrer le bitmap
dans le chemin Image1.png
au format ImageFormat.Png
.
Télécharger l’image sans connaître le format avec la fonction Image.FromStream()
en C#
On peut aussi faire la même chose que l’exemple précédent avec la fonction Image.FromStream()
en C#. La fonction Image.FromStream()
lit un fichier image à partir d’un flux mémoire en C#. Pour cela, nous pouvons d’abord télécharger toutes les données de notre URL vers un tableau d’octets. Ensuite, nous pouvons charger ce tableau dans un objet de la classe MemoryStream
. On peut alors utiliser la fonction Image.FromStream()
pour lire une image à partir de l’objet de la classe MemoryStream
. On peut alors sauvegarder cette image dans un chemin dans un format particulier avec la fonction Image.Save(path, format)
en C#. L’exemple de code suivant nous montre comment télécharger une image depuis une URL sans connaître sa mise en forme avec la fonction Image.FromStream()
en C#.
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);
}
}
}
}
Nous avons défini la fonction SaveImage()
qui télécharge et enregistre une image. Nous avons utilisé le tableau d’octets data
pour stocker les données renvoyées par la fonction webClient.DownloadData(url)
. Nous avons ensuite initialisé une instance mem
de la classe MemoryStream
avec data
. On lit ensuite l’image yourImage
du mem
avec la fonction Image.FromStream(mem)
. Au final, nous avons sauvegardé l’image yourImage
dans le chemin Image2.png
avec le formatage ImageFormat.Png
en utilisant la fonction yourImage.Save("Image2.png", ImageFormat.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