If you are looking for a tool or exe which you can use to download the images by URLs then you can try below one
https://github.com/ranjit-singh-cc/DownloadImagesByUrl
Code wise it pretty much simple – You put all the image URLs in url.txt file, and tool iterate over all those URLs and download it in provided destination folder
static void Main() {
Console.WriteLine("Enter destination folder path to save images: ");
string destinationFolder = Console.ReadLine();
string urlFileName = "urls.txt";
if (Directory.Exists(destinationFolder) == false)
Console.WriteLine("destination folder not found");
else if (File.Exists(urlFileName) == false)
Console.WriteLine("urls.txt file not found");
else {
string[] urls = File.ReadAllLines(urlFileName);
int count = 0;
Console.Write("Images download: 0");
foreach (string url in urls) {
if (DownloadImage(url, Path.Combine(destinationFolder, Path.GetFileName(url)))) {
count++;
Console.Write("\rImages download: {0}", count);
}
}
Console.WriteLine("\n{0} images download", count);
}
Console.WriteLine("Press any key to exit");
Console.ReadKey();
}
private static bool DownloadImage(string imgUrl, string fileName) {
bool error = false;
try {
using (WebClient client = new WebClient()) {
Stream stream = client.OpenRead(imgUrl);
if (stream != null) {
Bitmap bitmap = new Bitmap(stream);
ImageFormat imageFormat = ImageFormat.Jpeg;
if (bitmap.RawFormat.Equals(ImageFormat.Png)) {
imageFormat = ImageFormat.Png;
}
else if (bitmap.RawFormat.Equals(ImageFormat.Bmp)) {
imageFormat = ImageFormat.Bmp;
}
else if (bitmap.RawFormat.Equals(ImageFormat.Gif)) {
imageFormat = ImageFormat.Gif;
}
else if (bitmap.RawFormat.Equals(ImageFormat.Tiff)) {
imageFormat = ImageFormat.Tiff;
}
bitmap.Save(fileName, imageFormat);
stream.Flush();
stream.Close();
client.Dispose();
}
}
}
catch (WebException ex) {
error = true;
Console.WriteLine(ex.Message);
}
catch (ExternalException ex) {
error = true;
Console.WriteLine("Something is wrong with Format -- Maybe required Format is not applicable here : {0} ", ex.Message);
}
catch (ArgumentNullException ex) {
error = true;
Console.WriteLine("Something Wrong with Stream : {0}", ex.Message);
}
return !error;
}