package org.gba.spritely.imgsrc;
import java.awt.image.BufferedImage;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import org.gba.spritely.Spritely;
import org.gba.spritely.processing.ImageProcessing;
import org.gba.spritely.sitescrapers.WikimediaCommonsScraper;
public class WikimediaCommons
{
public static List<BufferedImage> searchWMC(Spritely s)
{
List<BufferedImage> urls = new LinkedList<BufferedImage>();
List<String> fresh_urls = WikimediaCommonsScraper.searchWC(s.query, true);
System.out.println("Searching Wikimedia Commons... " + fresh_urls.size() + " images found...");
if(s.pickRandom){
Collections.shuffle(fresh_urls);
}
int round = 0;
while (urls.size() < s.imagesPerSource) {
if ((round + 1) * s.imagesPerSource > fresh_urls.size()) {
return urls;
}
List<String> set = fresh_urls.subList(round * s.imagesPerSource, (round + 1) * s.imagesPerSource);
List<BufferedImage> results = new LinkedList<BufferedImage>();
for (BufferedImage image : ImageProcessing.filterForBorderless(set)) {
results.add(ImageProcessing.reduceBackground(ImageProcessing.shrink(image, 96, 96), true));
}
urls.addAll(ImageProcessing.filterForSingular(results));
round++;
}
if (Spritely.verbose) {
System.out.println("Wikimedia Commons found " + urls.size() + " images");
}
return urls;
}
}