comparison client/digitallibrary/jquery/jquery.digilib.js @ 772:33b5477f8d84 jquery

original size mode works with zoom area now. needs error handling.
author robcast
date Thu, 10 Feb 2011 23:38:03 +0100
parents 7e9851ef03d7
children 34bba748004d
comparison
equal deleted inserted replaced
771:4b686a0d44f7 772:33b5477f8d84
206 'rgba' : '0/0/0', 206 'rgba' : '0/0/0',
207 'ddpi' : null, 207 'ddpi' : null,
208 'ddpix' : null, 208 'ddpix' : null,
209 'ddpiy' : null, 209 'ddpiy' : null,
210 // list of digilib parameters 210 // list of digilib parameters
211 'digilibParamNames' : ['fn','pn','ww','wh','wx','wy','ws','mo','rot','cont','brgt','rgbm','rgba','mk','clop'], 211 'digilibParamNames' : ['fn','pn','ww','wh','wx','wy','ws','mo','rot','cont','brgt','rgbm','rgba','ddpi','mk','clop'],
212 // digilib parameter defaults 212 // digilib parameter defaults
213 'mk' : '', 213 'mk' : '',
214 'clop' : '', 214 'clop' : '',
215 // mode of operation: 215 // mode of operation:
216 // fullscreen = take parameters from page URL, keep state in page URL 216 // fullscreen = take parameters from page URL, keep state in page URL
602 redisplay(data); 602 redisplay(data);
603 } 603 }
604 }, 604 },
605 605
606 // calibrate (only faking) 606 // calibrate (only faking)
607 calibrate : function (data) { 607 calibrate : function (data, res) {
608 loadImageInfo(data); 608 var oldRes = data.settings.ddpi;
609 if (res == null) {
610 res = window.prompt("Display resolution (dpi)", oldRes);
611 }
612 if (res != null) {
613 data.settings.ddpi = res;
614 redisplay(data);
615 }
609 }, 616 },
610 617
611 // set image scale mode 618 // set image scale mode
612 setScaleMode : function (data, mode) { 619 setScaleMode : function (data, mode) {
613 var oldM = getScaleMode(data); 620 var oldM = getScaleMode(data);
1171 highlight('quality', flags.q1 || flags.q2); 1178 highlight('quality', flags.q1 || flags.q2);
1172 highlight('zoomin', ! isFullArea(data.zoomArea)); 1179 highlight('zoomin', ! isFullArea(data.zoomArea));
1173 }; 1180 };
1174 1181
1175 // create Transform from area and $img 1182 // create Transform from area and $img
1176 var getImgTrafo = function ($img, area, rot, hmir, vmir, mode, imgInfo) { 1183 var getImgTrafo = function ($img, area, rot, hmir, vmir, mode, data) {
1177 var picrect = geom.rectangle($img); 1184 var picrect = geom.rectangle($img);
1178 if (mode != null) { 1185 if (mode != null) {
1186 var imgInfo = data.imgInfo;
1179 if (mode === 'pixel') { 1187 if (mode === 'pixel') {
1180 // scaler mo=clip - image area size does not come from ww, wh 1188 // scaler mo=clip - image area size does not come from ww, wh
1181 if (imgInfo != null) { 1189 if (imgInfo != null) {
1182 area.width = picrect.width / imgInfo.width; 1190 area.width = picrect.width / imgInfo.width;
1183 area.height = picrect.height / imgInfo.height; 1191 area.height = picrect.height / imgInfo.height;
1184 } else { 1192 } else {
1185 console.error("No image info for pixel mode!"); 1193 console.error("No image info for pixel mode!");
1194 }
1195 }
1196 if (mode === 'size') {
1197 // scaler mo=osize - image area size does not come from ww, wh
1198 if (imgInfo != null) {
1199 var ddpi = parseFloat(data.settings.ddpi);
1200 area.width = (picrect.width / ddpi) / (imgInfo.width / imgInfo.dpi_x);
1201 area.height = (picrect.height / ddpi) / (imgInfo.height / imgInfo.dpi_y);
1202 } else {
1203 console.error("No image info for original size mode!");
1186 } 1204 }
1187 } 1205 }
1188 } 1206 }
1189 var trafo = geom.transform(); 1207 var trafo = geom.transform();
1190 // move zoom area offset to center 1208 // move zoom area offset to center
1221 var $img = data.$img; 1239 var $img = data.$img;
1222 if ($img != null && $img.get(0).complete) { 1240 if ($img != null && $img.get(0).complete) {
1223 // create Transform from current zoomArea and image size 1241 // create Transform from current zoomArea and image size
1224 data.imgTrafo = getImgTrafo($img, data.zoomArea, 1242 data.imgTrafo = getImgTrafo($img, data.zoomArea,
1225 data.settings.rot, data.scalerFlags.hmir, data.scalerFlags.vmir, 1243 data.settings.rot, data.scalerFlags.hmir, data.scalerFlags.vmir,
1226 data.scaleMode, data.imgInfo); 1244 data.scaleMode, data);
1227 // console.debug("imgTrafo=", data.imgTrafo); 1245 // console.debug("imgTrafo=", data.imgTrafo);
1228 } 1246 }
1229 }; 1247 };
1230 1248
1231 // returns function for load event of scaler img 1249 // returns function for load event of scaler img
1282 } 1300 }
1283 }; 1301 };
1284 1302
1285 // show zoom area indicator on bird's eye view 1303 // show zoom area indicator on bird's eye view
1286 var renderBirdArea = function (data) { 1304 var renderBirdArea = function (data) {
1287 if (data.$birdImg == null) return; 1305 if (data.$birdImg == null || ! data.$birdImg.get(0).complete) return;
1288 var $birdZoom = data.$birdZoom; 1306 var $birdZoom = data.$birdZoom;
1289 var zoomArea = data.zoomArea; 1307 var zoomArea = data.zoomArea;
1290 var normalSize = isFullArea(zoomArea); 1308 var normalSize = isFullArea(zoomArea);
1291 if (normalSize) { 1309 if (normalSize) {
1292 $birdZoom.hide(); 1310 $birdZoom.hide();