comparison scripts/image/saveimage.m @ 3748:599fb10b454d

[project @ 2000-12-08 04:43:33 by jwe]
author jwe
date Fri, 08 Dec 2000 04:43:34 +0000
parents 8cea69ad95ae
children 574711ce9070
comparison
equal deleted inserted replaced
3747:50f30e40abca 3748:599fb10b454d
131 idx = find (map < 0); 131 idx = find (map < 0);
132 map (idx) = zeros (size (idx)); 132 map (idx) = zeros (size (idx));
133 133
134 map = round (255 * map); 134 map = round (255 * map);
135 135
136 bw = (map_nr == 2
137 && ((map(1,1) == 0 && map(2,1) == 255)
138 || (map(1,1) == 255 && map(2,1) == 0)));
139
140 img = round (img'); 136 img = round (img');
141 [img_nr, img_nc] = size (img); 137 [img_nr, img_nc] = size (img);
142 138
143 img_sz = img_nr * img_nc; 139 img_sz = img_nr * img_nc;
144 img = reshape (img, img_sz, 1); 140 img = reshape (img, img_sz, 1);
158 time_string = ctime (time ()); 154 time_string = ctime (time ());
159 time_string = time_string (1:length (time_string)-1); 155 time_string = time_string (1:length (time_string)-1);
160 tagline = sprintf ("# Created by Octave %s, %s", 156 tagline = sprintf ("# Created by Octave %s, %s",
161 __OCTAVE_VERSION__, time_string); 157 __OCTAVE_VERSION__, time_string);
162 158
163 if (grey && map_nr == 2 && bw) 159 if (grey)
164
165 if (map(1) != 0)
166 map = [0; 1];
167 else
168 map = [1; 0];
169 endif
170
171 n_long = rem (img_nc, 8);
172 tmp = zeros (ceil (img_nc/8), img_nr);
173
174 for i = 1:img_nr
175 idx = (i-1)*img_nc+1:i*img_nc;
176 if (n_long > 0)
177 img_row = [map(img(idx)); (zeros (8-n_long, 1))];
178 else
179 img_row = map(img(idx));
180 endif
181 l_img_row = length (img_row);
182 if (img_nc < 8)
183 for j = 1:8
184 tmp(:,i) = tmp(:,i) + img_row (j) * 2^(8-j);
185 endfor
186 else
187 for j = 1:8
188 tmp(:,i) = tmp(:,i) + img_row (j:8:l_img_row) * 2^(8-j);
189 endfor
190 endif
191 endfor
192
193 fid = fopen (filename, "w");
194 fprintf (fid, "P4\n%s\n%d %d\n", tagline, img_nr, img_nc);
195 fwrite (fid, tmp, "char");
196 fprintf (fid, "\n");
197 fclose (fid);
198
199 elseif (grey)
200 160
201 fid = fopen (filename, "w"); 161 fid = fopen (filename, "w");
202 fprintf (fid, "P5\n%s\n%d %d\n255\n", tagline, img_nr, img_nc); 162 fprintf (fid, "P5\n%s\n%d %d\n255\n", tagline, img_nr, img_nc);
203 fwrite (fid, map(img), "uchar"); 163 fwrite (fid, map(img), "uchar");
204 fprintf (fid, "\n"); 164 fprintf (fid, "\n");