Mercurial > octave-antonio
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 |
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 | 3 ## Copyright (C) 2008 Kristian Rumberg |
4 ## Copyright (C) 2006 Thomas Weber | |
5 ## Copyright (C) 2005 Stefan van der Walt | |
8920 | 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 | 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 | 44 ## class of the output: @qcode{"uint8"}, @qcode{"uint16"} or @qcode{"single"} |
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 | 48 ## RGB image, use @code{ind2rgb}. When more than one indexed image is being |
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 | 51 ## each image. |
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 | 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 |