Code: Select all
Web.prototype.dllImgs = function(url) {
if (typeof url === 'string') {
url = [url];
}
if (Object.prototype.toString.call(url) === '[object Array]') {
var a = [], b = [], c = [], d = 0, e = false;
for (var i = 0; i < url.length; i++) {
if (typeof url[i] !== 'string') {
c.push("0 | [" + i + "] n'est pas une chaine de caractère");
d++;
} else {
a[i] = new Web({
onFinished : function() {
d++;
},
onError : function(error) {
c.push(error);
}
});
a[i].download(url[i]);
}
}
do {
if (d === a.length) {
for (var i = 0; i < a.length; i++) {
if (typeof a[i] === "undefined") {
b[i] = new Image();
} else {
b[i] = a[i].toImage();
}
if (b[i].height() === 0 && b[i].width() === 0) {
c.push("1 | L'image [" + i + "] est vide");
}
}
e = true;
}
} while (e === false)
b.error = c;
return b;
} else {
throw "Need String or Array";
}
}
Code: Select all
var web = new Web()
var arrayWithImages = web.dllImgs(/* Array || string*/); //Array ou string attendu en paramètre. Retourne un tableau contenant la ou les images, tableau.error contient un second tableau avec les messages d'erreurs
Code: Select all
Console.print(arrayWithImages[0].size()) //Retourne Image [width: x][height: x]
Code: Select all
var tab = ["http://media.mcm.fr/article-1865413-ajust_930/ca-a-bien-change-pokemon.jpg", "http://media.mcm.fr/article-1865413-ajust_930/ca-a-bien-change-pokemon.jpg", "http://media.mcm.fr/article-1865413-ajust_930/ca-a-bien-change-pokemon.jpg", "http://media.mcm.fr/article-1865413-ajust_930/ca-a-bien-change-pokemon.jpg", "http://media.mcm.fr/article-1865413-ajust_930/ca-a-bien-change-pokemon.jpg", "http://media.mcm.fr/article-1865413-ajust_930/ca-a-bien-change-pokemon.jpg", "http://media.mcm.fr/article-1865413-ajust_930/ca-a-bien-change-pokemon.jpg", "http://media.mcm.fr/article-1865413-ajust_930/ca-a-bien-change-pokemon.jpg", "http://media.mcm.fr/article-1865413-ajust_930/ca-a-bien-change-pokemon.jpg", "http://media.mcm.fr/article-1865413-ajust_930/ca-a-bien-change-pokemon.jpg"];
var arrayWithImages = new Web().dllImgs(tab);
for (var i = 0; i < tab.length; i++) {
Console.print(arrayWithImages[i].size());
}
Code: Select all
if (arrayWithImages.error.length === 0) {
Console.print("Il n'y a pas d'erreur.");
} else {
Console.print("Il y a " + arrayWithImages.error.length + " erreurs.";
}
Chez moi environ 550 ms pour télécharger 10 images de 52ko donc c'est assez rapide.
Edit : Correction + amélioration