annotate scripts/image/imread.m @ 18298:15db54c4a572

Fix input parsing for imageIO functions and make imread accept URL (bug #41234) * image/private/imageIO.m: make this function check existence of the file and handle URLs. It may also modify the input that imread() and imfinfo() received to remove the format name if it was given as a separate argument. The filepath will be modified to give the absolute filepath, and URLs will cause the file to be downloaded, and the filepath for a temporary will be given (and the file removed in the end). If the file can't be found it will thrown an error meaning that if the file is not found, whatever function is set for that format, it will never be called). * image/imfinfo.m, image/imread.m: change functions for the modified call to imageIO() and add new tests. * image/private/__imfinfo__.m, image/private/__imread__.m: remove parsing of input, checking for existence of file, and handling of URL since that is now done by imageIO(). * image/imformats.m: fix tests for the new behaviour.
author Carnë Draug <carandraug@octave.org>
date Thu, 16 Jan 2014 19:12:36 +0000
parents d63878346099
children 1b6f5917ae4b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16984
997efb8d0b19 imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents: 16967
diff changeset
1 ## Copyright (C) 2013 Carnë Draug
17744
d63878346099 maint: Update copyright notices for release.
John W. Eaton <jwe@octave.org>
parents: 17372
diff changeset
2 ## Copyright (C) 2008-2013 Thomas L. Scofield
16768
e2de3c8882be copyright notice fixes
John W. Eaton <jwe@octave.org>
parents: 14363
diff changeset
3 ## Copyright (C) 2008 Kristian Rumberg
e2de3c8882be copyright notice fixes
John W. Eaton <jwe@octave.org>
parents: 14363
diff changeset
4 ## Copyright (C) 2006 Thomas Weber
e2de3c8882be copyright notice fixes
John W. Eaton <jwe@octave.org>
parents: 14363
diff changeset
5 ## Copyright (C) 2005 Stefan van der Walt
8920
eb63fbe60fab update copyright notices
John W. Eaton <jwe@octave.org>
parents: 8664
diff changeset
6 ## Copyright (C) 2002 Andy Adler
7925
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
7 ##
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
8 ## This file is part of Octave.
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
9 ##
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
10 ## Octave is free software; you can redistribute it and/or modify it
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
11 ## under the terms of the GNU General Public License as published by
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
12 ## the Free Software Foundation; either version 3 of the License, or (at
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
13 ## your option) any later version.
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
14 ##
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
15 ## Octave is distributed in the hope that it will be useful, but
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
18 ## General Public License for more details.
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
19 ##
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
20 ## You should have received a copy of the GNU General Public License
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
21 ## along with Octave; see the file COPYING. If not, see
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
22 ## <http://www.gnu.org/licenses/>.
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
23
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
24 ## -*- texinfo -*-
16944
1b3b3ee88284 Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents: 16913
diff changeset
25 ## @deftypefn {Function File} {[@var{img}, @var{map}, @var{alpha}] =} imread (@var{filename})
1b3b3ee88284 Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents: 16913
diff changeset
26 ## @deftypefnx {Function File} {[@dots{}] =} imread (@var{url})
18298
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
27 ## @deftypefnx {Function File} {[@dots{}] =} imread (@dots{}, @var{ext})
16962
fb940d48c6f7 doc: document index argument for reading multipage images.
Carnë Draug <carandraug@octave.org>
parents: 16944
diff changeset
28 ## @deftypefnx {Function File} {[@dots{}] =} imread (@dots{}, @var{idx})
16984
997efb8d0b19 imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents: 16967
diff changeset
29 ## @deftypefnx {Function File} {[@dots{}] =} imread (@dots{}, @var{param1}, @var{val1}, @dots{})
7925
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
30 ## Read images from various file formats.
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
31 ##
16944
1b3b3ee88284 Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents: 16913
diff changeset
32 ## Reads an image as a matrix from the file @var{filename}. If there is
1b3b3ee88284 Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents: 16913
diff changeset
33 ## no file @var{filename}, and @var{ext} was specified, it will look for
18298
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
34 ## a file with the extension @var{ext}. Finally, it will attempt to download
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
35 ## and read an image from @var{url}.
16944
1b3b3ee88284 Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents: 16913
diff changeset
36 ##
16962
fb940d48c6f7 doc: document index argument for reading multipage images.
Carnë Draug <carandraug@octave.org>
parents: 16944
diff changeset
37 ## The size and class of the output depends on the
9072
bd8e388043c4 Cleanup documentation for signal.texi, image.texi, audio.texi
Rik <rdrider0-list@yahoo.com>
parents: 8920
diff changeset
38 ## format of the image. A color image is returned as an
11591
1d13679b587e Use @nospell macro on certain words in docstrings.
Rik <octave@nomad.inbox5.com>
parents: 11587
diff changeset
39 ## @nospell{MxNx3} matrix. Gray-level and black-and-white images are
16962
fb940d48c6f7 doc: document index argument for reading multipage images.
Carnë Draug <carandraug@octave.org>
parents: 16944
diff changeset
40 ## of size @nospell{MxN}. Multipage images will have an additional 4th
fb940d48c6f7 doc: document index argument for reading multipage images.
Carnë Draug <carandraug@octave.org>
parents: 16944
diff changeset
41 ## dimension.
17350
ba79ba4e83ab Rewrite of imfinfo.
Carnë Draug <carandraug@octave.org>
parents: 17338
diff changeset
42 ##
16962
fb940d48c6f7 doc: document index argument for reading multipage images.
Carnë Draug <carandraug@octave.org>
parents: 16944
diff changeset
43 ## The bit depth of the image determines the
17350
ba79ba4e83ab Rewrite of imfinfo.
Carnë Draug <carandraug@octave.org>
parents: 17338
diff changeset
44 ## class of the output: @qcode{"uint8"}, @qcode{"uint16"} or @qcode{"single"}
ba79ba4e83ab Rewrite of imfinfo.
Carnë Draug <carandraug@octave.org>
parents: 17338
diff changeset
45 ## for gray and color, and @qcode{"logical"} for black and white.
16996
a1d091243d11 Read alpha values from indexed images. Always read indexes from indexed images.
Carnë Draug <carandraug@octave.org>
parents: 16984
diff changeset
46 ## Note that indexed images always return the indexes for a colormap,
a1d091243d11 Read alpha values from indexed images. Always read indexes from indexed images.
Carnë Draug <carandraug@octave.org>
parents: 16984
diff changeset
47 ## independent if @var{map} is a requested output. To obtain the actual
17350
ba79ba4e83ab Rewrite of imfinfo.
Carnë Draug <carandraug@octave.org>
parents: 17338
diff changeset
48 ## RGB image, use @code{ind2rgb}. When more than one indexed image is being
ba79ba4e83ab Rewrite of imfinfo.
Carnë Draug <carandraug@octave.org>
parents: 17338
diff changeset
49 ## read, @var{map} is obtained from the first. In some rare cases this
17354
040752d07240 * scripts/image/imread.m: Fix typo in documentation.
Michael Goffioul <michael.goffioul@gmail.com>
parents: 17350
diff changeset
50 ## may be incorrect and @code{imfinfo} can be used to obtain the colormap of
17350
ba79ba4e83ab Rewrite of imfinfo.
Carnë Draug <carandraug@octave.org>
parents: 17338
diff changeset
51 ## each image.
ba79ba4e83ab Rewrite of imfinfo.
Carnë Draug <carandraug@octave.org>
parents: 17338
diff changeset
52 ##
16962
fb940d48c6f7 doc: document index argument for reading multipage images.
Carnë Draug <carandraug@octave.org>
parents: 16944
diff changeset
53 ## See the Octave manual for more information in representing images.
fb940d48c6f7 doc: document index argument for reading multipage images.
Carnë Draug <carandraug@octave.org>
parents: 16944
diff changeset
54 ##
fb940d48c6f7 doc: document index argument for reading multipage images.
Carnë Draug <carandraug@octave.org>
parents: 16944
diff changeset
55 ## Some file formats, such as TIFF and GIF, are able to store multiple
fb940d48c6f7 doc: document index argument for reading multipage images.
Carnë Draug <carandraug@octave.org>
parents: 16944
diff changeset
56 ## images in a single file. @var{idx} can be a scalar or vector
fb940d48c6f7 doc: document index argument for reading multipage images.
Carnë Draug <carandraug@octave.org>
parents: 16944
diff changeset
57 ## specifying the index of the images to read. By default, Octave
fb940d48c6f7 doc: document index argument for reading multipage images.
Carnë Draug <carandraug@octave.org>
parents: 16944
diff changeset
58 ## will only read the first page.
8148
213dd524f96b Improve documentation for image I/O.
sh@sh-laptop
parents: 7931
diff changeset
59 ##
16984
997efb8d0b19 imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents: 16967
diff changeset
60 ## Depending on the file format, it is possible to configure the reading
997efb8d0b19 imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents: 16967
diff changeset
61 ## of images with @var{param}, @var{val} pairs. The following options
997efb8d0b19 imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents: 16967
diff changeset
62 ## are supported:
997efb8d0b19 imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents: 16967
diff changeset
63 ##
16996
a1d091243d11 Read alpha values from indexed images. Always read indexes from indexed images.
Carnë Draug <carandraug@octave.org>
parents: 16984
diff changeset
64 ## @table @samp
17281
bc924baa2c4e doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents: 17171
diff changeset
65 ## @item @qcode{"Frames"} or @qcode{"Index"}
16984
997efb8d0b19 imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents: 16967
diff changeset
66 ## This is an alternative method to specify @var{idx}. When specifying it
17281
bc924baa2c4e doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents: 17171
diff changeset
67 ## in this way, its value can also be the string @qcode{"all"}.
16984
997efb8d0b19 imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents: 16967
diff changeset
68 ##
17281
bc924baa2c4e doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents: 17171
diff changeset
69 ## @item @qcode{"Info"}
17170
d6499c14021c doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents: 17118
diff changeset
70 ## This option exists for @sc{matlab} compatibility and has no effect. For
16984
997efb8d0b19 imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents: 16967
diff changeset
71 ## maximum performance while reading multiple images from a single file,
997efb8d0b19 imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents: 16967
diff changeset
72 ## use the Index option.
17118
c97a26408ee0 Implement PixelRegion option for imread().
Carnë Draug <carandraug@octave.org>
parents: 17086
diff changeset
73 ##
17281
bc924baa2c4e doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents: 17171
diff changeset
74 ## @item @qcode{"PixelRegion"}
17118
c97a26408ee0 Implement PixelRegion option for imread().
Carnë Draug <carandraug@octave.org>
parents: 17086
diff changeset
75 ## Controls the image region that is read. Takes as value a cell array
c97a26408ee0 Implement PixelRegion option for imread().
Carnë Draug <carandraug@octave.org>
parents: 17086
diff changeset
76 ## with two arrays of 3 elements @code{@{@var{rows} @var{cols}@}}. The
c97a26408ee0 Implement PixelRegion option for imread().
Carnë Draug <carandraug@octave.org>
parents: 17086
diff changeset
77 ## elements in the array are the start, increment and end pixel to be
17171
c3bd7314643c doc: Periodic spellcheck of documentation.
Rik <rik@octave.org>
parents: 17170
diff changeset
78 ## read. If the increment value is omitted, defaults to 1.
16984
997efb8d0b19 imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents: 16967
diff changeset
79 ## @end table
997efb8d0b19 imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents: 16967
diff changeset
80 ##
16944
1b3b3ee88284 Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents: 16913
diff changeset
81 ## @seealso{imwrite, imfinfo, imformats}
7925
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
82 ## @end deftypefn
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
83
16984
997efb8d0b19 imread: implement options Index, Frames, and Info.
Carnë Draug <carandraug@octave.org>
parents: 16967
diff changeset
84 ## Author: Carnë Draug <carandraug@octave.org>
16944
1b3b3ee88284 Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents: 16913
diff changeset
85 ## Author: Thomas L. Scofield <scofield@calvin.edu>
1b3b3ee88284 Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents: 16913
diff changeset
86 ## Author: Kristian Rumberg <kristianrumberg@gmail.com>
1b3b3ee88284 Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents: 16913
diff changeset
87 ## Author: Thomas Weber <thomas.weber.mail@gmail.com>
1b3b3ee88284 Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents: 16913
diff changeset
88 ## Author: Stefan van der Walt <stefan@sun.ac.za>
1b3b3ee88284 Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents: 16913
diff changeset
89 ## Author: Andy Adler
1b3b3ee88284 Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents: 16913
diff changeset
90
18298
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
91 function [img, varargout] = imread (filename, varargin)
7925
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
92 if (nargin < 1)
7931
de26beacb20f imread.m: simplify; loadimage.m: deprecate
John W. Eaton <jwe@octave.org>
parents: 7925
diff changeset
93 print_usage ();
18298
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
94 elseif (! ischar (filename))
11472
1740012184f9 Use uppercase for variable names in error() strings to match Info documentation. Only m-files done.
Rik <octave@nomad.inbox5.com>
parents: 10791
diff changeset
95 error ("imread: FILENAME must be a string");
7925
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
96 endif
16944
1b3b3ee88284 Add optional extension argument to image IO functions.
Carnë Draug <carandraug@octave.org>
parents: 16913
diff changeset
97
18298
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
98 [img, varargout{1:nargout-1}] = imageIO ("imread", @__imread__, "read", filename, varargin{:});
7925
9316b59903c9 Add original imread() files (from octave-forge) to core octave.
Thomas L. Scofield <scofield AT calvin DOT edu>
parents:
diff changeset
99 endfunction
9382
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
100
17338
1c89599167a6 maint: End m-files with 1 blank line.
Rik <rik@octave.org>
parents: 17281
diff changeset
101
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
102 %!testif HAVE_MAGICK
9382
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
103 %! vpng = [ ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
104 %! 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
105 %! 0, 13, 73, 72, 68, 82, 0, 0, 0, 3, ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
106 %! 0, 0, 0, 3, 8, 2, 0, 0, 0, 217, ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
107 %! 74, 34, 232, 0, 0, 0, 1, 115, 82, 71, ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
108 %! 66, 0, 174, 206, 28, 233, 0, 0, 0, 4, ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
109 %! 103, 65, 77, 65, 0, 0, 177, 143, 11, 252, ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
110 %! 97, 5, 0, 0, 0, 32, 99, 72, 82, 77, ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
111 %! 0, 0, 122, 38, 0, 0, 128, 132, 0, 0, ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
112 %! 250, 0, 0, 0, 128, 232, 0, 0, 117, 48, ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
113 %! 0, 0, 234, 96, 0, 0, 58, 152, 0, 0, ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
114 %! 23, 112, 156, 186, 81, 60, 0, 0, 0, 25, ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
115 %! 73, 68, 65, 84, 24, 87, 99, 96, 96, 96, ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
116 %! 248, 255, 255, 63, 144, 4, 81, 111, 101, 84, ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
117 %! 16, 28, 160, 16, 0, 197, 214, 13, 34, 74, ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
118 %! 117, 213, 17, 0, 0, 0, 0, 73, 69, 78, ...
ab563d2adc10 image/imread.m Test added.
Alexander Mamonov <mamonov@gmail.com>
parents: 9268
diff changeset
119 %! 68, 174, 66, 96, 130];
16967
52c1b832d98e imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents: 16962
diff changeset
120 %! filename = [tmpnam() ".png"];
52c1b832d98e imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents: 16962
diff changeset
121 %! unwind_protect
52c1b832d98e imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents: 16962
diff changeset
122 %! fid = fopen (filename, "wb");
52c1b832d98e imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents: 16962
diff changeset
123 %! fwrite (fid, vpng);
52c1b832d98e imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents: 16962
diff changeset
124 %! fclose (fid);
52c1b832d98e imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents: 16962
diff changeset
125 %! A = imread (filename);
52c1b832d98e imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents: 16962
diff changeset
126 %! unwind_protect_cleanup
52c1b832d98e imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents: 16962
diff changeset
127 %! unlink (filename);
52c1b832d98e imread: make sure test file is removed if imread() errors.
Carnë Draug <carandraug@octave.org>
parents: 16962
diff changeset
128 %! end_unwind_protect
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
129 %! assert (A(:,:,1), uint8 ([0, 255, 0; 255, 237, 255; 0, 255, 0]));
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
130 %! assert (A(:,:,2), uint8 ([0, 255, 0; 255, 28, 255; 0, 255, 0]));
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
131 %! assert (A(:,:,3), uint8 ([0, 255, 0; 255, 36, 255; 0, 255, 0]));
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
132
18298
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
133 ## If a file does not exist, it's the job of imread to check the file
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
134 ## exists before sending it over to __imread__ or whatever function
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
135 ## is defined in imformats to handle that specific format. This is the
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
136 ## same in imfinfo. So in this test we replace one format in imformats
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
137 ## with something that will not give an error if the file is missing
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
138 ## and make sure we do get an error.
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
139 %!testif HAVE_MAGICK
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
140 %! fmt = fmt_ori = imformats ("jpg");
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
141 %! fmt.read = @true;
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
142 %! error_thrown = false;
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
143 %! imformats ("update", "jpg", fmt);
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
144 %! unwind_protect
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
145 %! try
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
146 %! imread ("I sure hope this file does not exist.jpg");
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
147 %! catch
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
148 %! error_thrown = true;
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
149 %! end_try_catch
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
150 %! unwind_protect_cleanup
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
151 %! imformats ("update", "jpg", fmt_ori);
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
152 %! end_unwind_protect
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
153 %! assert (error_thrown, true);
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
154
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
155 ## make one of the formats read, return what it received as input to
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
156 ## confirm that the input parsing is working correcly
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
157 %!testif HAVE_MAGICK
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
158 %! fname = [tmpnam() ".jpg"];
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
159 %! def_fmt = imformats ();
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
160 %! fid = fopen (fname, "w");
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
161 %! unwind_protect
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
162 %! fmt = imformats ("jpg");
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
163 %! fmt.read = @(varargin) varargin;
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
164 %! imformats ("update", "jpg", fmt);
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
165 %! assert (imread (fname), {fname});
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
166 %! assert (imread (fname, "jpg"), {fname});
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
167 %! assert (imread (fname(1:end-4), "jpg"), {fname});
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
168 %! extra_inputs = {"some", 89, i, {6 7 8}};
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
169 %! assert (imread (fname, extra_inputs{:}), {fname, extra_inputs{:}});
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
170 %! assert (imread (fname, "jpg", extra_inputs{:}), {fname, extra_inputs{:}});
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
171 %! assert (imread (fname(1:end-4), "jpg", extra_inputs{:}), {fname, extra_inputs{:}});
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
172 %! unwind_protect_cleanup
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
173 %! fclose (fid);
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
174 %! unlink (fname);
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
175 %! imformats (def_fmt);
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
176 %! end_unwind_protect
15db54c4a572 Fix input parsing for imageIO functions and make imread accept URL (bug #41234)
Carnë Draug <carandraug@octave.org>
parents: 17744
diff changeset
177