Mercurial > hg > digilib-old
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(); |