annotate client/digitallibrary/modules/imago.js @ 117:3e6eacad8b22

small "fix" for people not setting dw and dh.
author robcast
date Wed, 11 Jun 2003 22:50:13 +0200
parents 26e6b2715a15
children 7dc74e541d7c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
102
26e6b2715a15 Initial revision
engler
parents:
diff changeset
1 /*
26e6b2715a15 Initial revision
engler
parents:
diff changeset
2 Copyright (C) 2003 WTWG, Uni Bern
26e6b2715a15 Initial revision
engler
parents:
diff changeset
3
26e6b2715a15 Initial revision
engler
parents:
diff changeset
4 This program is free software; you can redistribute it and/or
26e6b2715a15 Initial revision
engler
parents:
diff changeset
5 modify it under the terms of the GNU General Public License
26e6b2715a15 Initial revision
engler
parents:
diff changeset
6 as published by the Free Software Foundation; either version 2
26e6b2715a15 Initial revision
engler
parents:
diff changeset
7 of the License, or (at your option) any later version.
26e6b2715a15 Initial revision
engler
parents:
diff changeset
8
26e6b2715a15 Initial revision
engler
parents:
diff changeset
9 This program is distributed in the hope that it will be useful,
26e6b2715a15 Initial revision
engler
parents:
diff changeset
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
26e6b2715a15 Initial revision
engler
parents:
diff changeset
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26e6b2715a15 Initial revision
engler
parents:
diff changeset
12 GNU General Public License for more details.
26e6b2715a15 Initial revision
engler
parents:
diff changeset
13
26e6b2715a15 Initial revision
engler
parents:
diff changeset
14 You should have received a copy of the GNU General Public License
26e6b2715a15 Initial revision
engler
parents:
diff changeset
15 along with this program; if not, write to the Free Software
26e6b2715a15 Initial revision
engler
parents:
diff changeset
16 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
26e6b2715a15 Initial revision
engler
parents:
diff changeset
17
26e6b2715a15 Initial revision
engler
parents:
diff changeset
18 Author: Christian Luginbuehl, 01.05.2003 , Version Alcatraz 0.3
26e6b2715a15 Initial revision
engler
parents:
diff changeset
19 */
26e6b2715a15 Initial revision
engler
parents:
diff changeset
20 /****************************************************************************
26e6b2715a15 Initial revision
engler
parents:
diff changeset
21 * - imago module for digilib *
26e6b2715a15 Initial revision
engler
parents:
diff changeset
22 * *
26e6b2715a15 Initial revision
engler
parents:
diff changeset
23 * adds brightness and color manipulation to digilib *
26e6b2715a15 Initial revision
engler
parents:
diff changeset
24 * *
26e6b2715a15 Initial revision
engler
parents:
diff changeset
25 * christian luginbuehl (luginbuehl@student.unibe.ch) *
26e6b2715a15 Initial revision
engler
parents:
diff changeset
26 ****************************************************************************/
26e6b2715a15 Initial revision
engler
parents:
diff changeset
27
26e6b2715a15 Initial revision
engler
parents:
diff changeset
28 // overriding (some kind of inheriting) init in navigation_XX.js
26e6b2715a15 Initial revision
engler
parents:
diff changeset
29 function init_imago(pu, pn, ws, mo, mk, wx, wy, ww, wh, pt, brgt, cont, rot, rgba, rgbm) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
30
26e6b2715a15 Initial revision
engler
parents:
diff changeset
31 // debug window to check the parameters passed
26e6b2715a15 Initial revision
engler
parents:
diff changeset
32 //alert ("DEBUG message (parameters in init imago.js):\n\npu = " + pu + "\npn = " + pn + "\nws = " + ws + "\nmo = " + mo + "\nmk = " + mk + "\nwx = " + wx + "\nwy = " + wy + "\nww = " + ww + "\nwh = " + wh + "\npt = " + pt + "\nbrgt = " + brgt + "\ncont = " + cont + "\nrot = " + rot + "\nrgba = " + rgba + "\nrgbm = " + rgbm);
26e6b2715a15 Initial revision
engler
parents:
diff changeset
33
26e6b2715a15 Initial revision
engler
parents:
diff changeset
34 // calling original init
26e6b2715a15 Initial revision
engler
parents:
diff changeset
35 init_pagesTotal(pu, pn, ws, mo, mk, wx, wy, ww, wh, pt);
26e6b2715a15 Initial revision
engler
parents:
diff changeset
36
26e6b2715a15 Initial revision
engler
parents:
diff changeset
37 att.brgt = parseInt(brgt);
26e6b2715a15 Initial revision
engler
parents:
diff changeset
38 att.cont = parseFloat(cont);
26e6b2715a15 Initial revision
engler
parents:
diff changeset
39 att.rot = parseFloat(rot);
26e6b2715a15 Initial revision
engler
parents:
diff changeset
40 att.rgba = rgba;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
41 att.rgbm = rgbm;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
42
26e6b2715a15 Initial revision
engler
parents:
diff changeset
43 focus();
26e6b2715a15 Initial revision
engler
parents:
diff changeset
44 }
26e6b2715a15 Initial revision
engler
parents:
diff changeset
45
26e6b2715a15 Initial revision
engler
parents:
diff changeset
46
26e6b2715a15 Initial revision
engler
parents:
diff changeset
47 /**
26e6b2715a15 Initial revision
engler
parents:
diff changeset
48 * overriding 'loadPicture' in navigation
26e6b2715a15 Initial revision
engler
parents:
diff changeset
49 */
26e6b2715a15 Initial revision
engler
parents:
diff changeset
50 function loadPicture(detailGrade, keepArea) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
51
26e6b2715a15 Initial revision
engler
parents:
diff changeset
52 // the different detailGrades:
26e6b2715a15 Initial revision
engler
parents:
diff changeset
53 // 0 -> back, next, page
26e6b2715a15 Initial revision
engler
parents:
diff changeset
54 // 1 -> zoomout
26e6b2715a15 Initial revision
engler
parents:
diff changeset
55 // 2 -> zoomarea, zoompoint, moveto, scaledef
26e6b2715a15 Initial revision
engler
parents:
diff changeset
56
26e6b2715a15 Initial revision
engler
parents:
diff changeset
57 var newQuery = "fn=" + att.fn + "&pn=" + att.pn + "&ws=" + att.ws + "&mo=" + att.mo;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
58
26e6b2715a15 Initial revision
engler
parents:
diff changeset
59 if (detailGrade == 0) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
60 att.mk = "0/0";
26e6b2715a15 Initial revision
engler
parents:
diff changeset
61 att.brgt = 0;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
62 att.cont = 0;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
63 }
26e6b2715a15 Initial revision
engler
parents:
diff changeset
64
26e6b2715a15 Initial revision
engler
parents:
diff changeset
65 if ((detailGrade == 1) || (detailGrade == 0 && !keepArea)) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
66 att.wx = 0;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
67 att.wy = 0;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
68 att.ww = 1;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
69 att.wh = 1;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
70 }
26e6b2715a15 Initial revision
engler
parents:
diff changeset
71
26e6b2715a15 Initial revision
engler
parents:
diff changeset
72 newQuery += "&mk=" + att.mk + "&wx=" + att.wx + "&wy=" + att.wy + "&ww=" + att.ww + "&wh=" + att.wh;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
73
26e6b2715a15 Initial revision
engler
parents:
diff changeset
74 if (navigator.appName.toLowerCase() == "netscape") { // mozilla-browsers (netscape 4.xx, netscape 6.xx, etc.)
26e6b2715a15 Initial revision
engler
parents:
diff changeset
75 newQuery += "&dw=" + (innerWidth-30) + "&dh=" + (innerHeight-30);
26e6b2715a15 Initial revision
engler
parents:
diff changeset
76 } else { // ie, opera
26e6b2715a15 Initial revision
engler
parents:
diff changeset
77 newQuery += "&dw=" + (document.body.clientWidth-30) + "&dh=" + (document.body.clientHeight-30);
26e6b2715a15 Initial revision
engler
parents:
diff changeset
78 }
26e6b2715a15 Initial revision
engler
parents:
diff changeset
79
26e6b2715a15 Initial revision
engler
parents:
diff changeset
80 newQuery += "&pt=" + att.pt;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
81
26e6b2715a15 Initial revision
engler
parents:
diff changeset
82 newQuery += "&brgt=" + att.brgt;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
83 newQuery += "&cont=" + att.cont;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
84 newQuery += "&rot=" + att.rot;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
85 newQuery += "&rgba=" + att.rgba;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
86 newQuery += "&rgbm=" + att.rgbm;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
87
26e6b2715a15 Initial revision
engler
parents:
diff changeset
88 newQuery += "&lv=1";
26e6b2715a15 Initial revision
engler
parents:
diff changeset
89
26e6b2715a15 Initial revision
engler
parents:
diff changeset
90 // debug window - checking the parameters passed to the next image
26e6b2715a15 Initial revision
engler
parents:
diff changeset
91 //alert ("DEBUG MESSAGE (query-string in loadPicture):\n\n" + newQuery);
26e6b2715a15 Initial revision
engler
parents:
diff changeset
92 //alert(location.host + ":" + location.port + location.pathname);
26e6b2715a15 Initial revision
engler
parents:
diff changeset
93 location.href = location.protocol + "//" + location.host + location.pathname + "?" + newQuery;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
94 }
26e6b2715a15 Initial revision
engler
parents:
diff changeset
95
26e6b2715a15 Initial revision
engler
parents:
diff changeset
96
26e6b2715a15 Initial revision
engler
parents:
diff changeset
97 /**
26e6b2715a15 Initial revision
engler
parents:
diff changeset
98 * brightness (value of brightness between -255 - +255)
26e6b2715a15 Initial revision
engler
parents:
diff changeset
99 */
26e6b2715a15 Initial revision
engler
parents:
diff changeset
100 function brightness(value) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
101
26e6b2715a15 Initial revision
engler
parents:
diff changeset
102 if ((value < -255) || (value > 255)) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
103
26e6b2715a15 Initial revision
engler
parents:
diff changeset
104 alert ("Illegal brightness value (-255 to +255)");
26e6b2715a15 Initial revision
engler
parents:
diff changeset
105
26e6b2715a15 Initial revision
engler
parents:
diff changeset
106 } else {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
107
26e6b2715a15 Initial revision
engler
parents:
diff changeset
108 att.brgt = value;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
109
26e6b2715a15 Initial revision
engler
parents:
diff changeset
110 loadPicture(2);
26e6b2715a15 Initial revision
engler
parents:
diff changeset
111 }
26e6b2715a15 Initial revision
engler
parents:
diff changeset
112
26e6b2715a15 Initial revision
engler
parents:
diff changeset
113 }
26e6b2715a15 Initial revision
engler
parents:
diff changeset
114
26e6b2715a15 Initial revision
engler
parents:
diff changeset
115 /**
26e6b2715a15 Initial revision
engler
parents:
diff changeset
116 * contrast (value of contrast - range?)
26e6b2715a15 Initial revision
engler
parents:
diff changeset
117 */
26e6b2715a15 Initial revision
engler
parents:
diff changeset
118 function contrast(value) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
119
26e6b2715a15 Initial revision
engler
parents:
diff changeset
120 att.cont = parseFloat(value);
26e6b2715a15 Initial revision
engler
parents:
diff changeset
121
26e6b2715a15 Initial revision
engler
parents:
diff changeset
122 loadPicture(2);
26e6b2715a15 Initial revision
engler
parents:
diff changeset
123
26e6b2715a15 Initial revision
engler
parents:
diff changeset
124 }
26e6b2715a15 Initial revision
engler
parents:
diff changeset
125
26e6b2715a15 Initial revision
engler
parents:
diff changeset
126 /**
26e6b2715a15 Initial revision
engler
parents:
diff changeset
127 * rotation (value from 0 to 360 degrees)
26e6b2715a15 Initial revision
engler
parents:
diff changeset
128 */
26e6b2715a15 Initial revision
engler
parents:
diff changeset
129 function rotation(value) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
130
26e6b2715a15 Initial revision
engler
parents:
diff changeset
131 value = parseFloat(value) % 360;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
132
26e6b2715a15 Initial revision
engler
parents:
diff changeset
133 if (value < 0) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
134 value += 360;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
135 }
26e6b2715a15 Initial revision
engler
parents:
diff changeset
136
26e6b2715a15 Initial revision
engler
parents:
diff changeset
137 att.rot = value;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
138
26e6b2715a15 Initial revision
engler
parents:
diff changeset
139 loadPicture(2);
26e6b2715a15 Initial revision
engler
parents:
diff changeset
140
26e6b2715a15 Initial revision
engler
parents:
diff changeset
141 }
26e6b2715a15 Initial revision
engler
parents:
diff changeset
142
26e6b2715a15 Initial revision
engler
parents:
diff changeset
143 /**
26e6b2715a15 Initial revision
engler
parents:
diff changeset
144 * rgb add (r/g/b, each value from -255 to +255)
26e6b2715a15 Initial revision
engler
parents:
diff changeset
145 */
26e6b2715a15 Initial revision
engler
parents:
diff changeset
146 function rgba(value) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
147
26e6b2715a15 Initial revision
engler
parents:
diff changeset
148 values = value.split("/");
26e6b2715a15 Initial revision
engler
parents:
diff changeset
149
26e6b2715a15 Initial revision
engler
parents:
diff changeset
150 if (values.length != 3) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
151 alert ("Illegal parameter format (r/g/b)");
26e6b2715a15 Initial revision
engler
parents:
diff changeset
152 } else if ((values[0] < -255) || (values[0] > 255)) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
153 alert ("Illegal red additioner (-255 to 255)");
26e6b2715a15 Initial revision
engler
parents:
diff changeset
154 } else if ((values[1] < -255) || (values[1] > 255)) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
155 alert ("Illegal green additioner (-255 to 255)");
26e6b2715a15 Initial revision
engler
parents:
diff changeset
156 } else if ((values[2] < -255) || (values[2] > 255)) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
157 alert ("Illegal blue additioner (-255 to 255)");
26e6b2715a15 Initial revision
engler
parents:
diff changeset
158 } else {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
159
26e6b2715a15 Initial revision
engler
parents:
diff changeset
160 att.rgba = value;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
161 loadPicture(2);
26e6b2715a15 Initial revision
engler
parents:
diff changeset
162
26e6b2715a15 Initial revision
engler
parents:
diff changeset
163 }
26e6b2715a15 Initial revision
engler
parents:
diff changeset
164 }
26e6b2715a15 Initial revision
engler
parents:
diff changeset
165
26e6b2715a15 Initial revision
engler
parents:
diff changeset
166 /**
26e6b2715a15 Initial revision
engler
parents:
diff changeset
167 * rgb multiply (r/g/b, each value from ??? )
26e6b2715a15 Initial revision
engler
parents:
diff changeset
168 */
26e6b2715a15 Initial revision
engler
parents:
diff changeset
169 function rgbm(value) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
170
26e6b2715a15 Initial revision
engler
parents:
diff changeset
171 values = value.split("/");
26e6b2715a15 Initial revision
engler
parents:
diff changeset
172
26e6b2715a15 Initial revision
engler
parents:
diff changeset
173 if (values.length != 3) {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
174 alert ("Illegal parameter format (r/g/b)");
26e6b2715a15 Initial revision
engler
parents:
diff changeset
175 } else {
26e6b2715a15 Initial revision
engler
parents:
diff changeset
176
26e6b2715a15 Initial revision
engler
parents:
diff changeset
177 att.rgbm = value;
26e6b2715a15 Initial revision
engler
parents:
diff changeset
178 loadPicture(2);
26e6b2715a15 Initial revision
engler
parents:
diff changeset
179
26e6b2715a15 Initial revision
engler
parents:
diff changeset
180 }
26e6b2715a15 Initial revision
engler
parents:
diff changeset
181 }