comparison scripts/image/imwrite.m @ 18552:b83fca22bb4c

maint: Periodic merge of gui-release to default.
author John W. Eaton <jwe@octave.org>
date Fri, 07 Mar 2014 13:02:43 -0500
parents 7b60d0d9f0f2 e0cc67d5a462
children 19a140e93b1f
comparison
equal deleted inserted replaced
18541:2f5685c080e5 18552:b83fca22bb4c
112 fmt.write (varargin{:}); 112 fmt.write (varargin{:});
113 endif 113 endif
114 114
115 endfunction 115 endfunction
116 116
117
118 %% Test input validation 117 %% Test input validation
119 %!error imwrite () # Wrong # of args 118 %!error imwrite () # Wrong # of args
120 %!error imwrite (1) # Wrong # of args 119 %!error imwrite (1) # Wrong # of args
121 %!error imwrite ({"cell"}, "filename.jpg") # Wrong class for img 120 %!error imwrite ({"cell"}, "filename.jpg") # Wrong class for img
122 %!error imwrite (1, [], "filename.jpg") # Empty image map 121 %!error imwrite (1, [], "filename.jpg") # Empty image map
124 %!error imwrite (1, "filename") # No fmt specified 123 %!error imwrite (1, "filename") # No fmt specified
125 %!error imwrite (1, "filename", "junk") # Invalid fmt specified 124 %!error imwrite (1, "filename", "junk") # Invalid fmt specified
126 %!error imwrite ([], "filename.jpg") # Empty img matrix 125 %!error imwrite ([], "filename.jpg") # Empty img matrix
127 %!error imwrite (spones (2), "filename.jpg") # Invalid sparse img 126 %!error imwrite (spones (2), "filename.jpg") # Invalid sparse img
128 127
128 %!function [r, cmap, a] = write_and_read (varargin)
129 %! filename = [tmpnam() ".tif"];
130 %! unwind_protect
131 %! imwrite (varargin{1}, filename, varargin{2:end});
132 %! [r, cmap, a] = imread (filename, "Index", "all");
133 %! unwind_protect_cleanup
134 %! unlink (filename);
135 %! end_unwind_protect
136 %!endfunction
137
138 ## typical usage with grayscale uint8 images
129 %!testif HAVE_MAGICK 139 %!testif HAVE_MAGICK
130 %! imw = randi (255, 100, "uint8"); 140 %! gray = randi (255, 10, 10, 1, "uint8");
131 %! filename = [tmpnam() ".png"]; 141 %! r = write_and_read (gray);
132 %! unwind_protect 142 %! assert (r, gray)
133 %! imwrite (imw, filename);
134 %! imr = imread (filename);
135 %! unwind_protect_cleanup
136 %! unlink (filename);
137 %! end_unwind_protect
138 %! assert (imw, imr)
139 143
144 ## grayscale uint8 images with alpha channel
145 %!testif HAVE_MAGICK
146 %! gray = randi (255, 10, 10, 1, "uint8");
147 %! alpha = randi (255, 10, 10, 1, "uint8");
148 %! [r, ~, a] = write_and_read (gray, "Alpha", alpha);
149 %! assert (r, gray)
150 %! assert (a, alpha)
151
152 ## multipage grayscale uint8 images
153 %!testif HAVE_MAGICK
154 %! gray = randi (255, 10, 10, 1, 5, "uint8");
155 %! r = write_and_read (gray);
156 %! assert (r, gray)
157
158 ## multipage RGB uint8 images with alpha channel
159 %!testif HAVE_MAGICK
160 %! gray = randi (255, 10, 10, 3, 5, "uint8");
161 %! alpha = randi (255, 10, 10, 1, 5, "uint8");
162 %! [r, ~, a] = write_and_read (gray, "Alpha", alpha);
163 %! assert (r, gray)
164 %! assert (a, alpha)
165
166 ## typical usage with RGB uint8 images
167 %!testif HAVE_MAGICK
168 %! rgb = randi (255, 10, 10, 3, "uint8");
169 %! r = write_and_read (rgb);
170 %! assert (r, rgb)
171
172 ## RGB uint8 images with alpha channel
173 %!testif HAVE_MAGICK
174 %! rgb = randi (255, 10, 10, 3, "uint8");
175 %! alpha = randi (255, 10, 10, 1, "uint8");
176 %! [r, ~, a] = write_and_read (rgb, "Alpha", alpha);
177 %! assert (r, rgb)
178 %! assert (a, alpha)
179
180 ## multipage RGB uint8 images
181 %!testif HAVE_MAGICK
182 %! rgb = randi (255, 10, 10, 3, 5, "uint8");
183 %! r = write_and_read (rgb);
184 %! assert (r, rgb)
185
186 ## multipage RGB uint8 images with alpha channel
187 %!testif HAVE_MAGICK
188 %! rgb = randi (255, 10, 10, 3, 5, "uint8");
189 %! alpha = randi (255, 10, 10, 1, 5, "uint8");
190 %! [r, ~, a] = write_and_read (rgb, "Alpha", alpha);
191 %! assert (r, rgb)
192 %! assert (a, alpha)
193