Esempio n. 1
1
        public async Task <bool> IsMapOpen()
        {
            Bitmap bmp;
            Point  worldMapImage;

            await Task.Delay(100);

            bmp = new Bitmap(ImageSearch.PrintWindow((IntPtr)this.ai.screenHandle));
            await Task.Delay(100);

            worldMapImage = ImageSearch.SearchFromImage(bmp, "resources/world-map.png");
            return(!(worldMapImage.X == -1 && worldMapImage.Y == -1));
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            List<string> imageUrlsToSearch = new List<string>();
            ImageSearch search = new ImageSearch();
            search.ApiKey = "GET YOUR KEY FROM INCANDESCENT";
            search.Expires = 1200;
            search.UID = 0;//GET YOUR UID FROM INCANDESCENT API
            imageUrlsToSearch.Add("INSERT YOUR IMAGE URL HERE OR ADD MULTIPLE");
            //imageUrlsToSearch.Add("http://animalia-life.com/data_images/dog/dog1.jpg");
            search.Images = imageUrlsToSearch;

            var searchTask = Task.Factory.StartNew(() => {

                var searchResult = search.SearchImages().Result;
                foreach(var result in searchResult)
                {
                    System.Console.WriteLine("Domain - {0}", result.Key);
                    foreach (var page in result.Value.pages)
                    {
                        foreach(var image in page.Images)
                        {
                            System.Console.WriteLine("Image detail- {0} - (height X width) {1} {2}", image.usageimage,image.usageheight,image.usagewidth);
                        }

                    }
                }

            });
            searchTask.Wait();
            System.Console.ReadLine();
        }
Esempio n. 3
0
        static private int SetFiles(string path)
        {
            path = ImageSearch.GetDirectory(path);
            List <string> files = new List <string>();

            files.AddRange(Directory.GetFiles(path, "*.png", SearchOption.AllDirectories));
            files.AddRange(Directory.GetFiles(path, "*.jpg", SearchOption.AllDirectories));
            files.AddRange(Directory.GetFiles(path, "*.gif", SearchOption.AllDirectories));
            Console.WriteLine(files.Count + " files.");
            int count = 0;

            foreach (var f in files)
            {
                var fi = new FileInfo(f);
                if (fi.Length > 0)
                {
                    string img = _iv.AddImage(f);

                    count++;
                    if (count % 1000 == 0)
                    {
                        Console.WriteLine("\r {0}/{1} {2}", count, files.Count, f);
                    }
                }
            }
            return(files.Count);
        }
Esempio n. 4
0
        //private String directory = @"D:\DLSU-M\Term 1 AY 2016-2017\CSC741M\MP1_files\MP1\images";
        private void button1_Click_1(object sender, EventArgs e)
        {
            //cdh here
            ImageSearch imagesearch = new ImageSearch(directory);

            displayImages(imagesearch.search(currImgPath, ImageSearch.COLOR_DIFF_HISTOGRAM));
        }
Esempio n. 5
0
        private void colorcoherencebutton_Click(object sender, EventArgs e)
        {
            //colorcoherence
            ImageSearch imagesearch = new ImageSearch(directory);

            displayImages(imagesearch.search(currImgPath, ImageSearch.COLOR_COHERENCE));
        }
Esempio n. 6
0
        private void perceptualbutton_Click(object sender, EventArgs e)
        {
            //percep
            ImageSearch imagesearch = new ImageSearch(directory);

            displayImages(imagesearch.search(currImgPath, ImageSearch.PERCEPTUAL_SIM));
        }
Esempio n. 7
0
        static void Main(string[] args)
        {
            List <string> imageUrlsToSearch = new List <string>();
            ImageSearch   search            = new ImageSearch();

            search.ApiKey  = "GET YOUR KEY FROM INCANDESCENT";
            search.Expires = 1200;
            search.UID     = 0;//GET YOUR UID FROM INCANDESCENT API
            imageUrlsToSearch.Add("INSERT YOUR IMAGE URL HERE OR ADD MULTIPLE");
            //imageUrlsToSearch.Add("http://animalia-life.com/data_images/dog/dog1.jpg");
            search.Images = imageUrlsToSearch;

            var searchTask = Task.Factory.StartNew(() => {
                var searchResult = search.SearchImages().Result;
                foreach (var result in searchResult)
                {
                    System.Console.WriteLine("Domain - {0}", result.Key);
                    foreach (var page in result.Value.pages)
                    {
                        foreach (var image in page.Images)
                        {
                            System.Console.WriteLine("Image detail- {0} - (height X width) {1} {2}", image.usageimage, image.usageheight, image.usagewidth);
                        }
                    }
                }
            });

            searchTask.Wait();
            System.Console.ReadLine();
        }
Esempio n. 8
0
        /// <summary>
        /// Loads the image information from index.db.
        /// </summary>
        private async Task LoadImageInfoAsync()
        {
            var fn = NSBundle.MainBundle.PathForResource("index", "db");

            if (!File.Exists(fn))
            {
                ShowAlertOnWindow(
                    $"index.db {NSBundle.MainBundle.LocalizedString("ErrorNotFound", "optional")}",
                    NSBundle.MainBundle.LocalizedString("LoadFailed", "optional"),
                    NSAlertStyle.Critical);
                NSApplication.SharedApplication.Terminate(this);
            }

            try
            {
                imageSearch = new XMImageSearch();
                await imageSearch.LoadFromDbAsync(fn);
            }
            catch
            {
                ShowAlertOnWindow(
                    $"index.db {NSBundle.MainBundle.LocalizedString("ErrorCorrupted", "optional")}",
                    NSBundle.MainBundle.LocalizedString("LoadFailed", "optional"),
                    NSAlertStyle.Critical);
                NSApplication.SharedApplication.Terminate(this);
            }
        }
Esempio n. 9
0
 private EcoLib()
 {
     _PixelGetColor = PixelGetColor.GetInstance();
     _Imagesearch   = ImageSearch.GetInstanc();
     _ObjectHelper  = ObjectHelper.GetInstance();
     _InputKeyLib   = InputKeyLib.GetInstance();
     _WinApi        = WinApis.GetInstance();
 }
Esempio n. 10
0
        public Interface(IntPtr screenHandle)
        {
            Bitmap Screen = ImageSearch.PrintWindow(screenHandle);

            this.BtnBag   = ImageSearch.SearchFromImage(Screen, "resources/bag.png");
            this.BtnMore  = ImageSearch.SearchFromImage(Screen, "resources/more.png");
            this.BtnParty = ImageSearch.SearchFromImage(Screen, "resources/party.png");
        }
Esempio n. 11
0
        public Decoder(string path, UInt16 titleId, UInt16 episodeId)
        {
            Path      = path;
            TitleId   = titleId;
            EpisodeId = episodeId;

            capture     = new VideoCapture(Path);
            imageSearch = new ImageSearch();
        }
Esempio n. 12
0
        public async Task ScanMini(bool autoClose = true)
        {
            while (ai.isIdle == false)
            {
                Console.WriteLine("Press the Enter key to exit the program at any time... ");
                Console.ReadLine();

                Log.Info("Scanning for Mini Boss... Please wait...");
                await this.Action.OpenMVP();

                Point MonsterImage;
                //await Task.Delay(2000);

                Bitmap bmp = ImageSearch.PrintWindow((IntPtr)screenHandle);
                MonsterImage = ImageSearch.SearchFromImage(bmp, "resources/smokie.png");
                Timer_Mini   = new List <int>();

                Bitmap crop;
                if (MonsterImage.X == -1 && MonsterImage.Y == -1)
                {
                    Log.Error("Cannot find a reference point.");
                }
                //TODO export loop to aync function
                for (int i = 0; i < 5; i++)
                {
                    try
                    {
                        Point TempPoint;
                        bmp       = ImageSearch.PrintWindow((IntPtr)screenHandle);
                        TempPoint = new Point(MonsterImage.X + 360, MonsterImage.Y + 110 * i);
                        crop      = ImageSearch.CropImage(bmp, TempPoint, 180, 50);
                        crop.Save($"mob{i}.bmp");
                        Timer_Mini.Add(OCR.ExtractTime(OCR.RawOCR(crop)));
                        Log.Info($"{MobName_Mini[i]}: {Timer_Mini[i].ToString()} minutes");
                        await Task.Delay(400);
                    }
                    catch (Exception e)
                    {
                        Log.Info($"Error {e}");
                    }
                }

                //TODO
                //var loop = asyncFunctionCall()
                //check timer: while loop is not resolved?
                // if timer > 10 seconds: continue to line 123
                // await loop

                Log.Success("Successfully scanned!");
                if (autoClose)
                {
                    this.ClickImage("resources/close-button.png");
                }
                await Scheduler.ScheduleHunt(Timer_Mini);
            }
        }
Esempio n. 13
0
        static void CreateDb(string path)
        {
            path = ImageSearch.GetDirectory(path);

            List <string> files = new List <string>();

            FindFiles(path, "*.jpg", files);
            List <ImageInfo> info = new List <ImageInfo>();

            Console.WriteLine("Indexing {0} items...", files.Count);
            string sp = Path.DirectorySeparatorChar.ToString();

            foreach (var f in files)
            {
                string   hashStr  = f.Substring(path.Length, 3 * 8 - 1).Replace(sp, "");
                string   filename = Path.GetFileNameWithoutExtension(f);
                string[] data     = filename.Split('_');

                UInt64 hash      = Convert.ToUInt64(hashStr, 16);
                UInt16 titleId   = Convert.ToUInt16(data[0]);
                UInt16 episodeId = Convert.ToUInt16(data[1]);
                UInt32 frame     = Convert.ToUInt32(data[2]);

                info.Add(new ImageInfo
                {
                    Hash      = hash,
                    TitleId   = titleId,
                    EpisodeId = episodeId,
                    Frame     = frame
                });
            }

            Console.WriteLine("Sorting...");
            var sortedInfo = info.OrderBy(c => c.Hash).ThenBy(c => c.TitleId).ThenBy(c => c.EpisodeId).ThenBy(c => c.Frame);

            using (FileStream fs = new FileStream("index.db", FileMode.Create, FileAccess.Write))
            {
                // .gz 形式で圧縮
                using (GZipStream gzipStream = new GZipStream(fs, CompressionMode.Compress))
                {
                    using (BinaryWriter bw = new BinaryWriter(gzipStream))
                    {
                        bw.Write(sortedInfo.Count());
                        foreach (var w in sortedInfo)
                        {
                            bw.Write(w.Hash);
                            bw.Write(w.TitleId);
                            bw.Write(w.EpisodeId);
                            bw.Write(w.Frame);
                        }
                    }
                }
            }
            Console.WriteLine("Finished.");
        }
Esempio n. 14
0
        public async Task waitForSpawn(int milliseconds = 100)
        {
            await Task.Delay(milliseconds);

            isHunting = true;
            Task huntingDelayTimer = Task.Delay(ai.Settings.huntingDelay * 1000);



            while (isHunting == true)
            {
                var mapOpen = await ai.Action.IsMapOpen();

                if (mapOpen)
                {
                    ai.Click(new Point(1243, 134));//close map
                }
                Log.Info("Searching for monster...");
                if (huntingDelayTimer.IsCompleted == true)
                {
                    isHunting = false;
                    Log.Error("Cannot find/attack monster over a given period (huntingDelay)...");
                }
                else
                {
                    await Task.Delay(250);
                }
                // Use Fly Wing
                ai.Click(new Point(ai.Settings.flyWing[0], ai.Settings.flyWing[1]));
                await Task.Delay(400);

                // Open Auto
                await this.ai.Action.ClickAuto(500);

                // Search for mini indicator ()

                Bitmap Screen    = ImageSearch.PrintWindow((IntPtr)screenHandle);
                Point  spawnmini = ImageSearch.SearchFromImage(Screen, "resources/miniboss-indicator.png", 0.9);
                if (spawnmini.X >= 0 && spawnmini.Y >= 0)
                {
                    spawnmini.Y = spawnmini.Y - 25;
                    ai.Click(spawnmini);
                    Log.Success("Found target! Attacking...");
                    await Task.Delay(ai.Settings.attackDelay * 1000);

                    isHunting = false;
                }
                await Task.Delay(500);

                await this.ai.Action.ClickAuto(500); // Close Auto
            }
            isHunting = false;
            Log.Info("Monster probably dead by now... Idling...");
            await this.ai.Action.CancelAuto(500);
        }
Esempio n. 15
0
        public string[] SearchFaces(int cameraID, DateTime beginTime, DateTime endTime)
        {
            ImageDirSys start =
                new ImageDirSys(cameraID.ToString("d2"), DateTimeInString.FromDateTime(beginTime));
            ImageDirSys end =
                new ImageDirSys(cameraID.ToString("d2"), DateTimeInString.FromDateTime(endTime));

            FaceFiles = ImageSearch.SearchImages(start, end, ImageDirSys.SearchType.PicType);

            return(FaceFiles);
        }
        public ObservableCollection <ImageSearch> GetSearch()

        {
            ImageSearch item1 = new ImageSearch {
                Id = "1", Categoria = "Personas", Url = "http://desafiomundial.com/wp-content/uploads/2015/08/cr7.jpg", Nombre = "Adrian"
            };
            var result = new ObservableCollection <ImageSearch>();

            result.Add(item1);
            return(result);
            //      return null ;
        }
Esempio n. 17
0
        public async Task <string> SearchGoogleForImage(string searchTerm)
        {
            var DownloadLink = "&q=" + searchTerm.Replace("  ", " ").Trim().Replace(" ", "+");
            var searchResult = await apiInterface.CallGoogleImageApi(DownloadLink);

            ImageSearch imageResult = JsonSerializer.Deserialize <ImageSearch>(searchResult, new JsonSerializerOptions()
            {
                PropertyNameCaseInsensitive = true
            });

            return(imageResult.Items[0].Link);
        }
Esempio n. 18
0
        public async Task CloseTeleportWindowIfOpen(int milliseconds)
        {
            await Task.Delay(milliseconds);

            Bitmap bmp2    = ImageSearch.PrintWindow((IntPtr)ai.screenHandle);
            var    midgard = ImageSearch.SearchFromImage(bmp2, "resources/Midgaurd-logo.png");

            if (midgard.X != -1 && midgard.Y != -1)
            {
                ai.Click(new Point(50, 50)); //back
            }
        }
Esempio n. 19
0
        public async Task <int> GetMonsterSpawnTime(Point point)
        {
            var bmp      = ImageSearch.PrintWindow((IntPtr)screenHandle);
            var timeArea = new Point(point.X + 360, point.Y);
            var crop     = ImageSearch.CropImage(bmp, timeArea, 180, 50);
            //crop.Save($"mob{imageName}.bmp");
            int waitTime = OCR.ExtractTime(this.ai.OCR.RawOCR(crop));
            //Log.Info($"{imageName}: {Timer_Mini_extra} minutes");
            await Task.Delay(400);

            return(waitTime);
        }
Esempio n. 20
0
        public bool ClickImage(String fileName, int retries = 5)
        {
            Point point = ImageSearch.SearchFromHandle((IntPtr)screenHandle, fileName);

            System.Diagnostics.Debug.WriteLine(fileName + ": " + point.X + "," + point.Y);
            if (point.X > -1 && point.Y > -1)
            {
                Win32.Click(this.hWnd, point.X, point.Y + 30); // NOX Constant
                return(true);
            }
            return(false);
        }
Esempio n. 21
0
 public BaiduAi(ILogger <BaiduAi> logger, Orc orc, FaceRecognition faceRecognition, BodyAnalysis bodyAnalysis, Speech speech,
                ImageClassify imageClassify, ImageSearch imageSearch, ImageEffects imageEffects, Nlp nlp)
 {
     _logger          = logger;
     _orc             = orc;
     _faceRecognition = faceRecognition;
     _bodyAnalysis    = bodyAnalysis;
     _speech          = speech;
     _imageClassify   = imageClassify;
     _imageSearch     = imageSearch;
     _imageEffects    = imageEffects;
     _nlp             = nlp;
 }
Esempio n. 22
0
        public ImagePair[] FacesCapturedAt(int cameraID, DateTime time)
        {
            string[]    files = ImageSearch.FacesCapturedAt(time, cameraID, true);
            ImagePair[] bmps  = new ImagePair[files.Length];

            for (int i = 0; i < files.Length; i++)
            {
                ImagePair ip = new ImagePair();
                ip.Face     = (Bitmap)Bitmap.FromFile(files[i]);
                ip.FacePath = files[i];

                bmps[i] = ip;
            }

            return(bmps);
        }
Esempio n. 23
0
        public ActionResult SearchImages(int proposalId, string searchString)
        {
            // create an ImageSearch ViewModel that holds everything the view needs,
            // including the proposalId, search text, and image search results
            var vm = new ImageSearch {
                ProposalId   = proposalId,
                SearchString = searchString,
                // search for images if there is search text
                Images = String.IsNullOrEmpty(searchString)
                    ? _repository.Images
                    : _repository.Images.Where(i => i.Filename.Contains(searchString))
            };

            // pass the viewmodel to the view
            return(View(vm));
        }
Esempio n. 24
0
        public async Task <IActionResult> ImageSearch(int proposalId, string searchString)
        {
            var vm = new ImageSearch
            {
                ProposalId   = proposalId,
                SearchString = searchString,
                // search for images if there is search text
                Images = String.IsNullOrEmpty(searchString)
                    ? await _repository.GetImagesForDesignerAsync(User.GetUserId())
                    : await _repository.Images
                         .Where(i => i.DesignerId == _repository.GetDesignerIdForUserId(User.GetUserId()))
                         .Where(i => i.ImageTags.Any(x => x.Tag.Name == searchString))
                         .ToListAsync()
            };

            return(View(vm));
        }
Esempio n. 25
0
        public async Task <Point> FindMonsterImage(string imageName)
        {
            // var Timer_Mini_extra = 30;
            Bitmap bmp          = ImageSearch.PrintWindow((IntPtr)ai.screenHandle);
            var    MonsterImage = ImageSearch.SearchFromImage(bmp, imageName);

            Point TempPoint;

            //bmp = ImageSearch.PrintWindow((IntPtr)screenHandle);
            //TempPoint = new Point(MonsterImage.X + 360, MonsterImage.Y + 110);
            //var crop = ImageSearch.CropImage(bmp, TempPoint, 180, 50);
            //crop.Save($"mob{imageName}.bmp");
            //Timer_Mini_extra = OCR.ExtractTime(this.ai.OCR.RawOCR(crop));
            //Log.Info($"{imageName}: {Timer_Mini_extra} minutes");
            //await Task.Delay(400);
            return(MonsterImage);
        }
Esempio n. 26
0
 private void ScanImage(List <Monster> monsterList)
 {
     foreach (var monster in monsterList)
     {
         Bitmap bmp      = ImageSearch.PrintWindow((IntPtr)_ai.screenHandle);
         var    leftBmp  = ImageSearch.CropImage(bmp, new Point(0, 0), 720, 670);
         Point  location = Scan(leftBmp, monster.GetImagePath());
         if (location.X == -1 && location.Y == -1)
         {
             continue;
         }
         location.Y += monster.GetMonsterImagePositionOffsetY();
         location.X += 360;
         Bitmap crop = ImageSearch.CropImage(bmp, location, 185, 60);
         monster.MinutesToSpawn = OCR.ExtractTime(_OCR.RawOCR(crop));
         //_log.Info($"{monster.GetName()}: {monster.MinutesToSpawn} minutes");
     }
 }
Esempio n. 27
0
        static void Main(string[] args)
        {
            if (args.Length < 2)
            {
                Console.WriteLine("usage: createindex input_path output_path");
                return;
            }

            try
            {
                _iv = new ImageSearch(args[1]);
                var files = SetFiles(args[0]);
            }catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.WriteLine("Finished.");
        }
Esempio n. 28
0
        public async Task LoadPhrase(string s)
        {
            PhraseEn = s;
            if (Lang == "en")
            {
                Phrase = PhraseEn;
            }
            else
            {
                var tr = new SimpleTranslator(Config.BingTranslatorAppId, Config.BingTranslatorAppKey);
                Phrase = await tr.Translate(s, "en", Lang);
            }
            var ims = new ImageSearch(Config.BingImgSearchApiKey);
            var res = await ims.Search(Phrase, 50);

            Image = (from z in res
                     where z.Width < 400 && z.Width > 200
                     where z.EncodingFormat == "jpeg"
                     select z).FirstOrDefault();
        }
        private async Task <List <ImageSearch> > GetGoogleImages(string year, string make, string model)
        {
            var querystring = "?year=" + year + "&make=" + make + "&model=" + model;
            var response    = await client.GetAsync("http://prhinehart-carfinder.azurewebsites.net:80/api/Cars/GetGoogleImages" + querystring);

            var result    = response.Content.ReadAsStringAsync().Result;
            var data      = (JArray)JsonConvert.DeserializeObject(result);
            var imageList = new List <ImageSearch>();

            foreach (var item in data.Children())
            {
                var imageSearch = new ImageSearch()
                {
                    imageLink   = item["ThumbnailLink"].ToString(),
                    imageHeight = (int)item["ThumbnailHeight"],
                    imageWidth  = (int)item["ThumbnailWidth"]
                };
                imageList.Add(imageSearch);
            }
            return(imageList);
        }
Esempio n. 30
0
        static void Main(string[] args)
        {
            string[] carModelsList       = CarModels.GetPopularCarModels(4, 16);
            var      rootFolder          = @"c:\test\Cars\";
            var      prefix              = "car";
            int      maxImagesToDownload = 25;

            var imgSearch = new ImageSearch();

            imgSearch.FileDownloading  += FileDownloadingEventHandler;
            imgSearch.InformationEvent += InformationEventHandler;

            foreach (string carModel in carModelsList)
            {
                var searchString = carModel;
                Console.WriteLine("Searching for images matching {0}...", carModel);
                Console.WriteLine();

                imgSearch.FindAndDownloadMatchingImages(searchString, rootFolder, prefix, maxImagesToDownload);
            }

            //if (args.Length > 0 && args[0] == "?")
            //{
            //    ShowUsage();
            //    return;
            //}

            // Default args
            //var searchString = "Escalade";
            //var rootFolder = @"c:\test\Cars\";
            //var prefix = "car";

            //GetArguments(args, ref searchString, ref rootFolder, ref prefix);

            //FindAndDownloadMatchingImages(searchString, rootFolder, prefix);

            Console.WriteLine("Press ENTER to end program.");
            Console.ReadLine();
        }
Esempio n. 31
0
        //990,395
        public async Task GoToKafraAgent()
        {
            await Task.Delay(500);

            await ai.Action.ButterflyWing();

            await Task.Delay(4000);

            await DelayOnLocation();
            await OpenMap();

            await Task.Delay(600);

            var kafraLocationOnMap = new Point(990, 395);

            ai.Click(kafraLocationOnMap);
            await CloseMap();

            await Task.Delay(7000);

            Bitmap bmp = ImageSearch.PrintWindow((IntPtr)ai.screenHandle);
            await Task.Delay(250);

            Point kafraImg = await GetKafraImage(bmp);

            await Task.Delay(250);

            Bitmap bmp2 = ImageSearch.CropImage(bmp, kafraImg);

            ai.Click(new Point(kafraImg.X + 2, kafraImg.Y - 2));//adjusted click from image

            await Task.Delay(1000);

            //ai.ClickImage("resources/teleport.png");
            ai.Click(new Point(1112, 472));//teleport
            await Task.Delay(2000);
        }
Esempio n. 32
0
        /// <summary>
        /// Gets images from the web.
        /// 
        /// To save this image simply:
        ///     Image image = WebImage.GetImage("bird");
        ///     image.Save(@"C:\tt\" + "bird" + ".bmp");
        /// </summary>
        /// <param name="searchTerm"></param>
        /// <param name="maxImages"></param>
        /// <returns></returns>
        public static List<Image> GetImages(string searchTerm, int maxImages)
        {
            int errorCount = 0;
            List<Image> images = new List<Image>();

            while (errorCount < 2)
            {
                try
                {
                    string bossApiKey = @"cLu6lP3V34EdnCaq33wpD1gpKppR9f8IUmDclhLTa6..UD._ejYFEBnK1IoZUFIu3rSETiVPyPg6";
                    ImageSearch imgS = new ImageSearch(bossApiKey);
                    SearchResult<ImageSearchResultItem> results = imgS.Query(searchTerm).Get();

                    int i = 0;
                    foreach (ImageSearchResultItem result in results)
                    {
                        WebRequest requestPic = WebRequest.Create(result.Thumbnail_Url);
                        WebResponse responsePic = requestPic.GetResponse();
                        images.Add(Image.FromStream(responsePic.GetResponseStream()));

                        if (++i >= maxImages)
                            break;
                    }

                    break;
                }
                catch (WebException ex)
                {
                    errorCount += 1;
                    if (errorCount >= 2)
                        throw new WebException(InternetConnectionErrorMessage, ex);
                }
                catch (FormatException ex1)
                {
                    errorCount += 1;
                    if (errorCount >= 2)
                        throw new FormatException(string.Format("Failed to get image for: {0}", searchTerm), ex1);
                }
            }

            if (images.Count < 1)
                throw new WebException("No images were returned");

            return images;
        }