summaryrefslogtreecommitdiffstats
path: root/qpdf/qtest/image_optimization.test
diff options
context:
space:
mode:
Diffstat (limited to 'qpdf/qtest/image_optimization.test')
-rw-r--r--qpdf/qtest/image_optimization.test60
1 files changed, 60 insertions, 0 deletions
diff --git a/qpdf/qtest/image_optimization.test b/qpdf/qtest/image_optimization.test
new file mode 100644
index 00000000..a4671bf6
--- /dev/null
+++ b/qpdf/qtest/image_optimization.test
@@ -0,0 +1,60 @@
+#!/usr/bin/env perl
+require 5.008;
+use warnings;
+use strict;
+
+unshift(@INC, '.');
+require qpdf_test_helpers;
+
+chdir("qpdf") or die "chdir testdir failed: $!\n";
+
+require TestDriver;
+
+cleanup();
+
+my $td = new TestDriver('image_optimization');
+
+my @image_opt = (
+ ['image-streams', 'image-streams', ''],
+ ['small-images', 'defaults', ''],
+ ['small-images', 'min-width',
+ '--oi-min-width=150 --oi-min-height=0 --oi-min-area=0'],
+ ['small-images', 'min-height',
+ '--oi-min-width=0 --oi-min-height=150 --oi-min-area=0'],
+ ['small-images', 'min-area',
+ '--oi-min-width=0 --oi-min-height=0 --oi-min-area=30000'],
+ ['small-images', 'min-area-all',
+ '--oi-min-width=0 --oi-min-height=0 --oi-min-area=30000'],
+ ['large-inline-image', 'inline-images',
+ '--ii-min-bytes=0'],
+ ['large-inline-image', 'inline-images-all-size',
+ '--oi-min-width=0 --oi-min-height=0 --oi-min-area=0 --ii-min-bytes=0'],
+ ['large-inline-image', 'inline-images-keep-some', ''],
+ ['large-inline-image', 'inline-images-keep-all', '--keep-inline-images'],
+ ['unsupported-optimization', 'unsupported',
+ '--oi-min-width=0 --oi-min-height=0 --oi-min-area=0'],
+ );
+
+my $n_tests = 2 * scalar(@image_opt);
+
+foreach my $d (@image_opt)
+{
+ my ($f, $description, $args) = @$d;
+
+ $td->runtest("optimize images: $description",
+ {$td->COMMAND =>
+ "qpdf --static-id --optimize-images --verbose" .
+ " $args $f.pdf a.pdf",
+ $td->FILTER => "perl filter-optimize-images.pl"},
+ {$td->FILE => "optimize-images-$description.out",
+ $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+ $td->runtest("check json: $description",
+ {$td->COMMAND => "qpdf --json --json-key=pages a.pdf"},
+ {$td->FILE => "optimize-images-$description-json.out",
+ $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+}
+
+cleanup();
+$td->report($n_tests);