-
-
Notifications
You must be signed in to change notification settings - Fork 83
Expand file tree
/
Copy pathxlimage.js
More file actions
37 lines (37 loc) · 1.34 KB
/
Copy pathxlimage.js
File metadata and controls
37 lines (37 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var xlimage = (function () { //Code isolation
return {
"name": "XLimage",
"description": "Format developed by an italian company, used on kbr.be",
"urls" : [
/kbr.be\/multi\/([\w\d-]+)Viewer/,
/\.img.\?cmd=info/
],
"findFile" : function getZoomifyPath (baseUrl, callback) {
// kbr.be
var kbrMatch = baseUrl.match(/kbr.be\/multi\/([\w\d-]+)Viewer/);
if (kbrMatch) {
var id = kbrMatch[1];
var pagenum = parseInt(prompt("What is the number of the page you want to download?"));
var padded = ("000" + (pagenum+1)).slice(-3);
return callback("/multi/"+id+"Viewer/xml.php?/multi/"+id+"/"+padded+".imgi?cmd=info");
}
// If nothing worked, treat the url as the one of a raw xml
return callback(baseUrl);
},
"open" : function (url) {
ZoomManager.getFile(url, {type:"xml"}, function (doc, xhr) {
var data = {};
data.origin = url.replace(/\?cmd=info.*$/,"");
data.width = parseInt(doc.getElementsByTagName("width")[0].innerHTML);
data.height = parseInt(doc.getElementsByTagName("height")[0].innerHTML);
data.tileSize = parseInt(doc.getElementsByTagName("tileside")[0].innerHTML);
data.maxZoomLevel = 1;
ZoomManager.readyToRender(data);
});
},
"getTileURL" : function (x,y,z, data) {
return data.origin+"?cmd=tile&x="+x+"&y="+y+"&z="+z;
}
};
})();
ZoomManager.addDezoomer(xlimage);