Пример #1
0
        /**
         * Get images if needed
         * */
        private void SearchImages(Category category, int pages = 3, bool ifNeeded = true)
        {
            int thresh = 10;

            foreach (String member in category.members)
            {
                GoogleImageSearch engine = new GoogleImageSearch(apiKey, cxId);

                String[] labels = { "", "_clipart" };

                foreach (String label in labels)
                {
                    String dirName = Path.Combine(imageDir, Encode(member) + label);

                    //images have been downloaded already
                    if (Directory.Exists(dirName) && Directory.GetFiles(dirName).Count() >= thresh)
                    {
                        Console.WriteLine("Already have images for " + member + label.Replace("_", " "));
                        continue;
                    }

                    List <String> urls = engine.Search(member + label.Replace("_", " "), pages);

                    Directory.CreateDirectory(dirName);

                    //save the images
                    for (int i = 0; i < urls.Count(); i++)
                    {
                        Bitmap image = Util.BitmapFromWeb(urls[i]);

                        if (image == null)
                        {
                            continue;
                        }

                        image.Save(Path.Combine(dirName, i + ".png"));
                        image.Dispose();
                    }
                }
            }
            Console.WriteLine("Done getting images");
        }
Пример #2
0
        /**
         * Get images if needed
         * */
        private void SearchImages(Category category, int pages=3, bool ifNeeded = true)
        {
            int thresh = 10;
            foreach (String member in category.members)
            {
                GoogleImageSearch engine = new GoogleImageSearch(apiKey, cxId);

                String[] labels = { "", "_clipart" };

                foreach (String label in labels)
                {

                    String dirName = Path.Combine(imageDir, Encode(member) + label);

                    //images have been downloaded already
                    if (Directory.Exists(dirName) && Directory.GetFiles(dirName).Count() >= thresh)
                    {
                        Console.WriteLine("Already have images for " + member + label.Replace("_"," "));
                        continue;
                    }

                    List<String> urls = engine.Search(member+label.Replace("_"," "), pages);

                    Directory.CreateDirectory(dirName);

                    //save the images
                    for (int i = 0; i < urls.Count(); i++)
                    {
                        Bitmap image = Util.BitmapFromWeb(urls[i]);

                        if (image == null)
                            continue;

                        image.Save(Path.Combine(dirName, i + ".png"));
                        image.Dispose();
                    }

                }
            }
            Console.WriteLine("Done getting images");
        }