changeset 19729:a4f6fbd1af77

imwrite: add tests for jpeg writing (bugs #41673, #44118, #42474)
author Carnë Draug <carandraug@octave.org>
date Wed, 11 Feb 2015 17:50:23 +0000
parents c334e4af3a1b
children c4728e4105b8
files scripts/image/imwrite.m
diffstat 1 files changed, 20 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/image/imwrite.m	Wed Feb 11 17:40:04 2015 +0000
+++ b/scripts/image/imwrite.m	Wed Feb 11 17:50:23 2015 +0000
@@ -125,8 +125,8 @@
 %!error imwrite ([], "filename.jpg")          # Empty img matrix
 %!error imwrite (spones (2), "filename.jpg")  # Invalid sparse img
 
-%!function [r, cmap, a] = write_and_read (varargin)
-%!  filename = [tempname() ".tif"];
+%!function [r, cmap, a] = write_and_read (format, varargin)
+%!  filename = [tempname() format];
 %!  unwind_protect
 %!    imwrite (varargin{1}, filename, varargin{2:end});
 %!    [r, cmap, a] = imread (filename, "Index", "all");
@@ -138,56 +138,66 @@
 ## typical usage with grayscale uint8 images
 %!testif HAVE_MAGICK
 %! gray  = randi (255, 10, 10, 1, "uint8");
-%! r  = write_and_read (gray);
+%! r  = write_and_read (".tif", gray);
 %! assert (r, gray)
 
 ## grayscale uint8 images with alpha channel
 %!testif HAVE_MAGICK
 %! gray  = randi (255, 10, 10, 1, "uint8");
 %! alpha = randi (255, 10, 10, 1, "uint8");
-%! [r, ~, a] = write_and_read (gray, "Alpha", alpha);
+%! [r, ~, a] = write_and_read (".tif", gray, "Alpha", alpha);
 %! assert (r, gray)
 %! assert (a, alpha)
 
 ## multipage grayscale uint8 images
 %!testif HAVE_MAGICK
 %! gray  = randi (255, 10, 10, 1, 5, "uint8");
-%! r     = write_and_read (gray);
+%! r     = write_and_read (".tif", gray);
 %! assert (r, gray)
 
 ## multipage RGB uint8 images with alpha channel
 %!testif HAVE_MAGICK
 %! gray  = randi (255, 10, 10, 3, 5, "uint8");
 %! alpha = randi (255, 10, 10, 1, 5, "uint8");
-%! [r, ~, a] = write_and_read (gray, "Alpha", alpha);
+%! [r, ~, a] = write_and_read (".tif", gray, "Alpha", alpha);
 %! assert (r, gray)
 %! assert (a, alpha)
 
 ## typical usage with RGB uint8 images
 %!testif HAVE_MAGICK
 %! rgb = randi (255, 10, 10, 3, "uint8");
-%! r = write_and_read (rgb);
+%! r = write_and_read (".tif", rgb);
 %! assert (r, rgb)
 
 ## RGB uint8 images with alpha channel
 %!testif HAVE_MAGICK
 %! rgb   = randi (255, 10, 10, 3, "uint8");
 %! alpha = randi (255, 10, 10, 1, "uint8");
-%! [r, ~, a] = write_and_read (rgb, "Alpha", alpha);
+%! [r, ~, a] = write_and_read (".tif", rgb, "Alpha", alpha);
 %! assert (r, rgb)
 %! assert (a, alpha)
 
 ## multipage RGB uint8 images
 %!testif HAVE_MAGICK
 %! rgb = randi (255, 10, 10, 3, 5, "uint8");
-%! r = write_and_read (rgb);
+%! r = write_and_read (".tif", rgb);
 %! assert (r, rgb)
 
 ## multipage RGB uint8 images with alpha channel
 %!testif HAVE_MAGICK
 %! rgb   = randi (255, 10, 10, 3, 5, "uint8");
 %! alpha = randi (255, 10, 10, 1, 5, "uint8");
-%! [r, ~, a] = write_and_read (rgb, "Alpha", alpha);
+%! [r, ~, a] = write_and_read (".tif", rgb, "Alpha", alpha);
 %! assert (r, rgb)
 %! assert (a, alpha)
 
+%!testif HAVE_MAGICK
+%! gray   = repmat (uint8 (0:255), 100, 1);
+%! [g] = write_and_read (".jpeg", gray);
+%! assert (g, gray, 2)
+
+%!testif HAVE_MAGICK
+%! gray   = repmat (uint8 (0:255), 100, 1);
+%! [g] = write_and_read (".jpeg", gray, "quality", 100);
+%! assert (g, gray)
+