[gnome-color-manager] trivial: vectorize the target figure and add good and bad variants



commit 37f9b108d24286d9010f52b9f53b85570d511039
Author: Richard Hughes <richard hughsie com>
Date:   Thu Feb 25 14:16:54 2010 +0000

    trivial: vectorize the target figure and add good and bad variants

 contrib/gnome-color-manager.spec.in |    2 +-
 data/figures/Makefile.am            |    4 +-
 data/figures/argyll-target.png      |  Bin 6246 -> 0 bytes
 data/figures/scan-target-bad.svg    |  765 +++++++++++++++++++++++++++++++++++
 data/figures/scan-target-good.svg   |  765 +++++++++++++++++++++++++++++++++++
 data/figures/scan-target.svg        |  758 ++++++++++++++++++++++++++++++++++
 src/gcm-calibrate-argyll.c          |   13 +-
 7 files changed, 2300 insertions(+), 7 deletions(-)
---
diff --git a/contrib/gnome-color-manager.spec.in b/contrib/gnome-color-manager.spec.in
index 49922d3..8e34422 100644
--- a/contrib/gnome-color-manager.spec.in
+++ b/contrib/gnome-color-manager.spec.in
@@ -125,7 +125,7 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
 %dir %{_datadir}/gnome-color-manager/icons
 %{_datadir}/gnome-color-manager/targets/*.png
 %{_datadir}/gnome-color-manager/icons/*.svg
-%{_datadir}/gnome-color-manager/icons/*.png
+#%{_datadir}/gnome-color-manager/icons/*.png
 %{_datadir}/man/man1/*.1.gz
 %{_datadir}/gnome/help/gnome-color-manager
 %{_datadir}/omf/gnome-color-manager
diff --git a/data/figures/Makefile.am b/data/figures/Makefile.am
index 84cd6be..8f27ff5 100644
--- a/data/figures/Makefile.am
+++ b/data/figures/Makefile.am
@@ -1,7 +1,9 @@
 figuresdir = $(datadir)/gnome-color-manager/icons
 figures_DATA = 	 			\
 	clock.svg			\
-	argyll-target.png		\
+	scan-target.svg			\
+	scan-target-good.svg		\
+	scan-target-bad.svg		\
 	huey-attach.svg			\
 	spyder-attach.svg		\
 	munki-ambient.svg		\
diff --git a/data/figures/scan-target-bad.svg b/data/figures/scan-target-bad.svg
new file mode 100644
index 0000000..8f3ac1e
--- /dev/null
+++ b/data/figures/scan-target-bad.svg
@@ -0,0 +1,765 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="480"
+   height="260"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="argyll-target.svg">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient5681">
+      <stop
+         style="stop-color:#460546;stop-opacity:1;"
+         offset="0"
+         id="stop5683" />
+      <stop
+         id="stop5689"
+         offset="1"
+         style="stop-color:#462546;stop-opacity:0.49803922;" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2886"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3684"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3706"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3728"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3750"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3783"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3807"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3840"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3868"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3868-3"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3899"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3921"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3943"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3967"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3991"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4013"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4035"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4075"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2857"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3645"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3667"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3689"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3689-5"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3689-3"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3689-2"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3689-0"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3758"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3816"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3917"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3942"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.79469228"
+     inkscape:cx="384.59743"
+     inkscape:cy="-83.914951"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:snap-from-guide="false"
+     inkscape:window-width="1680"
+     inkscape:window-height="975"
+     inkscape:window-x="0"
+     inkscape:window-y="25"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2816"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-10,-692.36218)">
+    <rect
+       style="fill:#8a23ff;fill-opacity:1;stroke:none"
+       id="rect2863"
+       width="60"
+       height="60"
+       x="60"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffc600;fill-opacity:1;stroke:none"
+       id="rect2863-4"
+       width="5"
+       height="60"
+       x="120"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#d10000;fill-opacity:1;stroke:none"
+       id="rect2863-4-4"
+       width="3.7500002"
+       height="60"
+       x="56.25"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       id="rect2863-41"
+       width="60"
+       height="60"
+       x="125"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#d100b7;fill-opacity:1;stroke:none"
+       id="rect2863-4-5"
+       width="5"
+       height="60"
+       x="185"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#a8a8a8;fill-opacity:1;stroke:none"
+       id="rect2863-49"
+       width="60"
+       height="60"
+       x="190"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-8"
+       width="5"
+       height="60"
+       x="250"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#9beb6f;fill-opacity:1;stroke:none"
+       id="rect2863-8"
+       width="60"
+       height="60"
+       x="255"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-52"
+       width="5"
+       height="60"
+       x="315"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#a7b719;fill-opacity:1;stroke:none"
+       id="rect2863-2"
+       width="60"
+       height="60"
+       x="320"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-7"
+       width="5"
+       height="60"
+       x="380"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#c9c9c9;fill-opacity:1;stroke:none"
+       id="rect2863-3"
+       width="60"
+       height="60"
+       x="385"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-46"
+       width="5"
+       height="60"
+       x="445"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#f47d2c;fill-opacity:1;stroke:none"
+       id="rect2863-492"
+       width="60"
+       height="60"
+       x="95"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-74"
+       width="5"
+       height="60"
+       x="155"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-4-2"
+       width="5"
+       height="60"
+       x="90"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#d6d6d6;fill-opacity:1;stroke:none"
+       id="rect2863-41-5"
+       width="60"
+       height="60"
+       x="160"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-5-2"
+       width="5"
+       height="60"
+       x="220"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#3f9650;fill-opacity:1;stroke:none"
+       id="rect2863-49-4"
+       width="60"
+       height="60"
+       x="225"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-8-4"
+       width="5"
+       height="60"
+       x="285"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:none"
+       id="rect2863-8-3"
+       width="60"
+       height="60"
+       x="290"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffc600;fill-opacity:1;stroke:none"
+       id="rect2863-4-52-8"
+       width="5"
+       height="60"
+       x="350"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#40003e;fill-opacity:1;stroke:none"
+       id="rect2863-2-6"
+       width="60"
+       height="60"
+       x="355"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffc600;fill-opacity:1;stroke:none"
+       id="rect2863-4-7-0"
+       width="5"
+       height="60"
+       x="415"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#f7f7f7;fill-opacity:1;stroke:none"
+       id="rect2863-3-8"
+       width="60"
+       height="60"
+       x="420"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#d100b7;fill-opacity:1;stroke:none"
+       id="rect2863-4-46-9"
+       width="5"
+       height="60"
+       x="480"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#fcff81;fill-opacity:1;stroke:none"
+       id="rect2863-31"
+       width="60"
+       height="60"
+       x="60"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-83"
+       width="5"
+       height="60"
+       x="120"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-4-4"
+       width="3.7500002"
+       height="60"
+       x="56.25"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#b6ff3a;fill-opacity:1;stroke:none"
+       id="rect2863-41-2"
+       width="60"
+       height="60"
+       x="125"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#d10000;fill-opacity:1;stroke:none"
+       id="rect2863-4-5-24"
+       width="5"
+       height="60"
+       x="185"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#b40faa;fill-opacity:1;stroke:none"
+       id="rect2863-49-5"
+       width="60"
+       height="60"
+       x="190"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffc600;fill-opacity:1;stroke:none"
+       id="rect2863-4-8-1"
+       width="5"
+       height="60"
+       x="250"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#1b021a;fill-opacity:1;stroke:none"
+       id="rect2863-8-7"
+       width="60"
+       height="60"
+       x="255"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#d100b7;fill-opacity:1;stroke:none"
+       id="rect2863-4-52-5"
+       width="5"
+       height="60"
+       x="315"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#bcbcbc;fill-opacity:1;stroke:none"
+       id="rect2863-2-7"
+       width="60"
+       height="60"
+       x="320"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#d10000;fill-opacity:1;stroke:none"
+       id="rect2863-4-7-1"
+       width="5"
+       height="60"
+       x="380"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#9a41ff;fill-opacity:1;stroke:none"
+       id="rect2863-3-6"
+       width="60"
+       height="60"
+       x="385"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffc600;fill-opacity:1;stroke:none"
+       id="rect2863-4-46-98"
+       width="5"
+       height="60"
+       x="445"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#b9cc8b;fill-opacity:1;stroke:none"
+       id="rect2863-492-1"
+       width="60"
+       height="60"
+       x="95"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#008eff;fill-opacity:1;stroke:none"
+       id="rect2863-4-74-3"
+       width="5"
+       height="60"
+       x="155"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-4-2-3"
+       width="5"
+       height="60"
+       x="90"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#841000;fill-opacity:1;stroke:none"
+       id="rect2863-41-5-3"
+       width="60"
+       height="60"
+       x="160"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-5-2-7"
+       width="5"
+       height="60"
+       x="220"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:none;stroke:none"
+       id="rect2863-49-4-9"
+       width="60"
+       height="60"
+       x="225"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#d100b7;fill-opacity:1;stroke:none"
+       id="rect2863-4-8-4-8"
+       width="5"
+       height="60"
+       x="285"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#191742;fill-opacity:1;stroke:none"
+       id="rect2863-8-3-6"
+       width="60"
+       height="60"
+       x="290"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#d100b7;fill-opacity:1;stroke:none"
+       id="rect2863-4-52-8-7"
+       width="5"
+       height="60"
+       x="350"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#50ff03;fill-opacity:1;stroke:none"
+       id="rect2863-2-6-0"
+       width="60"
+       height="60"
+       x="355"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-7-0-4"
+       width="5"
+       height="60"
+       x="415"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:none;stroke:none"
+       id="rect2863-3-8-8"
+       width="60"
+       height="60"
+       x="420"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-46-9-4"
+       width="5"
+       height="60"
+       x="480"
+       y="702.36218"
+       ry="0" />
+    <text
+       xml:space="preserve"
+       style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="-887.26385"
+       y="46.217602"
+       id="text3905"
+       transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3907"
+         x="-887.26385"
+         y="46.217602">A</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="-828.47699"
+       y="46.217602"
+       id="text3905-0"
+       transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3907-5"
+         x="-828.47699"
+         y="46.217602">B</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="-770.76044"
+       y="42.34462"
+       id="text3905-6"
+       transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3907-0"
+         x="-770.76044"
+         y="42.34462">C</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="-712.61273"
+       y="42.34462"
+       id="text3905-0-6"
+       transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3907-5-4"
+         x="-712.61273"
+         y="42.34462">D</tspan></text>
+    <rect
+       style="fill:#ff0303;fill-opacity:1;stroke:#000000;stroke-width:5.03194904;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="rect3967"
+       width="395"
+       height="60"
+       x="55"
+       y="762.36218" />
+  </g>
+</svg>
diff --git a/data/figures/scan-target-good.svg b/data/figures/scan-target-good.svg
new file mode 100644
index 0000000..7e12007
--- /dev/null
+++ b/data/figures/scan-target-good.svg
@@ -0,0 +1,765 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="480"
+   height="260"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="argyll-target-bad.svg">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient5681">
+      <stop
+         style="stop-color:#460546;stop-opacity:1;"
+         offset="0"
+         id="stop5683" />
+      <stop
+         id="stop5689"
+         offset="1"
+         style="stop-color:#462546;stop-opacity:0.49803922;" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2886"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3684"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3706"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3728"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3750"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3783"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3807"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3840"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3868"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3868-3"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3899"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3921"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3943"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3967"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3991"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4013"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4035"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4075"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2857"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3645"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3667"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3689"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3689-5"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3689-3"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3689-2"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3689-0"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3758"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3816"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3917"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3942"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.79469228"
+     inkscape:cx="384.59743"
+     inkscape:cy="-83.914951"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:snap-from-guide="false"
+     inkscape:window-width="1680"
+     inkscape:window-height="975"
+     inkscape:window-x="0"
+     inkscape:window-y="25"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2816"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-10,-692.36218)">
+    <rect
+       style="fill:#8a23ff;fill-opacity:1;stroke:none"
+       id="rect2863"
+       width="60"
+       height="60"
+       x="60"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffc600;fill-opacity:1;stroke:none"
+       id="rect2863-4"
+       width="5"
+       height="60"
+       x="120"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#d10000;fill-opacity:1;stroke:none"
+       id="rect2863-4-4"
+       width="3.7500002"
+       height="60"
+       x="56.25"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       id="rect2863-41"
+       width="60"
+       height="60"
+       x="125"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#d100b7;fill-opacity:1;stroke:none"
+       id="rect2863-4-5"
+       width="5"
+       height="60"
+       x="185"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#a8a8a8;fill-opacity:1;stroke:none"
+       id="rect2863-49"
+       width="60"
+       height="60"
+       x="190"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-8"
+       width="5"
+       height="60"
+       x="250"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#9beb6f;fill-opacity:1;stroke:none"
+       id="rect2863-8"
+       width="60"
+       height="60"
+       x="255"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-52"
+       width="5"
+       height="60"
+       x="315"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#a7b719;fill-opacity:1;stroke:none"
+       id="rect2863-2"
+       width="60"
+       height="60"
+       x="320"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-7"
+       width="5"
+       height="60"
+       x="380"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#c9c9c9;fill-opacity:1;stroke:none"
+       id="rect2863-3"
+       width="60"
+       height="60"
+       x="385"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-46"
+       width="5"
+       height="60"
+       x="445"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#f47d2c;fill-opacity:1;stroke:none"
+       id="rect2863-492"
+       width="60"
+       height="60"
+       x="95"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-74"
+       width="5"
+       height="60"
+       x="155"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-4-2"
+       width="5"
+       height="60"
+       x="90"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#d6d6d6;fill-opacity:1;stroke:none"
+       id="rect2863-41-5"
+       width="60"
+       height="60"
+       x="160"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-5-2"
+       width="5"
+       height="60"
+       x="220"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#3f9650;fill-opacity:1;stroke:none"
+       id="rect2863-49-4"
+       width="60"
+       height="60"
+       x="225"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-8-4"
+       width="5"
+       height="60"
+       x="285"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:none"
+       id="rect2863-8-3"
+       width="60"
+       height="60"
+       x="290"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffc600;fill-opacity:1;stroke:none"
+       id="rect2863-4-52-8"
+       width="5"
+       height="60"
+       x="350"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#40003e;fill-opacity:1;stroke:none"
+       id="rect2863-2-6"
+       width="60"
+       height="60"
+       x="355"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffc600;fill-opacity:1;stroke:none"
+       id="rect2863-4-7-0"
+       width="5"
+       height="60"
+       x="415"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#f7f7f7;fill-opacity:1;stroke:none"
+       id="rect2863-3-8"
+       width="60"
+       height="60"
+       x="420"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#d100b7;fill-opacity:1;stroke:none"
+       id="rect2863-4-46-9"
+       width="5"
+       height="60"
+       x="480"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#fcff81;fill-opacity:1;stroke:none"
+       id="rect2863-31"
+       width="60"
+       height="60"
+       x="60"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-83"
+       width="5"
+       height="60"
+       x="120"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-4-4"
+       width="3.7500002"
+       height="60"
+       x="56.25"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#b6ff3a;fill-opacity:1;stroke:none"
+       id="rect2863-41-2"
+       width="60"
+       height="60"
+       x="125"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#d10000;fill-opacity:1;stroke:none"
+       id="rect2863-4-5-24"
+       width="5"
+       height="60"
+       x="185"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#b40faa;fill-opacity:1;stroke:none"
+       id="rect2863-49-5"
+       width="60"
+       height="60"
+       x="190"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffc600;fill-opacity:1;stroke:none"
+       id="rect2863-4-8-1"
+       width="5"
+       height="60"
+       x="250"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#1b021a;fill-opacity:1;stroke:none"
+       id="rect2863-8-7"
+       width="60"
+       height="60"
+       x="255"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#d100b7;fill-opacity:1;stroke:none"
+       id="rect2863-4-52-5"
+       width="5"
+       height="60"
+       x="315"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#bcbcbc;fill-opacity:1;stroke:none"
+       id="rect2863-2-7"
+       width="60"
+       height="60"
+       x="320"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#d10000;fill-opacity:1;stroke:none"
+       id="rect2863-4-7-1"
+       width="5"
+       height="60"
+       x="380"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#9a41ff;fill-opacity:1;stroke:none"
+       id="rect2863-3-6"
+       width="60"
+       height="60"
+       x="385"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffc600;fill-opacity:1;stroke:none"
+       id="rect2863-4-46-98"
+       width="5"
+       height="60"
+       x="445"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#b9cc8b;fill-opacity:1;stroke:none"
+       id="rect2863-492-1"
+       width="60"
+       height="60"
+       x="95"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#008eff;fill-opacity:1;stroke:none"
+       id="rect2863-4-74-3"
+       width="5"
+       height="60"
+       x="155"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-4-2-3"
+       width="5"
+       height="60"
+       x="90"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#841000;fill-opacity:1;stroke:none"
+       id="rect2863-41-5-3"
+       width="60"
+       height="60"
+       x="160"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-5-2-7"
+       width="5"
+       height="60"
+       x="220"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:none;stroke:none"
+       id="rect2863-49-4-9"
+       width="60"
+       height="60"
+       x="225"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#d100b7;fill-opacity:1;stroke:none"
+       id="rect2863-4-8-4-8"
+       width="5"
+       height="60"
+       x="285"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#191742;fill-opacity:1;stroke:none"
+       id="rect2863-8-3-6"
+       width="60"
+       height="60"
+       x="290"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#d100b7;fill-opacity:1;stroke:none"
+       id="rect2863-4-52-8-7"
+       width="5"
+       height="60"
+       x="350"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#50ff03;fill-opacity:1;stroke:none"
+       id="rect2863-2-6-0"
+       width="60"
+       height="60"
+       x="355"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-7-0-4"
+       width="5"
+       height="60"
+       x="415"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:none;stroke:none"
+       id="rect2863-3-8-8"
+       width="60"
+       height="60"
+       x="420"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-46-9-4"
+       width="5"
+       height="60"
+       x="480"
+       y="702.36218"
+       ry="0" />
+    <text
+       xml:space="preserve"
+       style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="-887.26385"
+       y="46.217602"
+       id="text3905"
+       transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3907"
+         x="-887.26385"
+         y="46.217602">A</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="-828.47699"
+       y="46.217602"
+       id="text3905-0"
+       transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3907-5"
+         x="-828.47699"
+         y="46.217602">B</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="-770.76044"
+       y="42.34462"
+       id="text3905-6"
+       transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3907-0"
+         x="-770.76044"
+         y="42.34462">C</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="-712.61273"
+       y="42.34462"
+       id="text3905-0-6"
+       transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3907-5-4"
+         x="-712.61273"
+         y="42.34462">D</tspan></text>
+    <rect
+       style="fill:#1aff03;fill-opacity:1;stroke:#000000;stroke-width:5.03194903999999976;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="rect3967"
+       width="395"
+       height="60"
+       x="55"
+       y="762.36218" />
+  </g>
+</svg>
diff --git a/data/figures/scan-target.svg b/data/figures/scan-target.svg
new file mode 100644
index 0000000..4cf1995
--- /dev/null
+++ b/data/figures/scan-target.svg
@@ -0,0 +1,758 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="480"
+   height="260"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="argyll-target-bad.svg">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient5681">
+      <stop
+         style="stop-color:#460546;stop-opacity:1;"
+         offset="0"
+         id="stop5683" />
+      <stop
+         id="stop5689"
+         offset="1"
+         style="stop-color:#462546;stop-opacity:0.49803922;" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective2886"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3684"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3706"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3728"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3750"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3783"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3807"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3840"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3868"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3868-3"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3899"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3921"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3943"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3967"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3991"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4013"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4035"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4075"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2857"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3645"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3667"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3689"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3689-5"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3689-3"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3689-2"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3689-0"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3758"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3816"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3917"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3942"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.79469228"
+     inkscape:cx="384.59743"
+     inkscape:cy="-86.431648"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:snap-from-guide="false"
+     inkscape:window-width="1680"
+     inkscape:window-height="975"
+     inkscape:window-x="0"
+     inkscape:window-y="25"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2816"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-10,-692.36218)">
+    <rect
+       style="fill:#8a23ff;fill-opacity:1;stroke:none"
+       id="rect2863"
+       width="60"
+       height="60"
+       x="60"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffc600;fill-opacity:1;stroke:none"
+       id="rect2863-4"
+       width="5"
+       height="60"
+       x="120"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#d10000;fill-opacity:1;stroke:none"
+       id="rect2863-4-4"
+       width="3.7500002"
+       height="60"
+       x="56.25"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       id="rect2863-41"
+       width="60"
+       height="60"
+       x="125"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#d100b7;fill-opacity:1;stroke:none"
+       id="rect2863-4-5"
+       width="5"
+       height="60"
+       x="185"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#a8a8a8;fill-opacity:1;stroke:none"
+       id="rect2863-49"
+       width="60"
+       height="60"
+       x="190"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-8"
+       width="5"
+       height="60"
+       x="250"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#9beb6f;fill-opacity:1;stroke:none"
+       id="rect2863-8"
+       width="60"
+       height="60"
+       x="255"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-52"
+       width="5"
+       height="60"
+       x="315"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#a7b719;fill-opacity:1;stroke:none"
+       id="rect2863-2"
+       width="60"
+       height="60"
+       x="320"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-7"
+       width="5"
+       height="60"
+       x="380"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#c9c9c9;fill-opacity:1;stroke:none"
+       id="rect2863-3"
+       width="60"
+       height="60"
+       x="385"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-46"
+       width="5"
+       height="60"
+       x="445"
+       y="882.36218"
+       ry="0" />
+    <rect
+       style="fill:#f47d2c;fill-opacity:1;stroke:none"
+       id="rect2863-492"
+       width="60"
+       height="60"
+       x="95"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-74"
+       width="5"
+       height="60"
+       x="155"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-4-2"
+       width="5"
+       height="60"
+       x="90"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#d6d6d6;fill-opacity:1;stroke:none"
+       id="rect2863-41-5"
+       width="60"
+       height="60"
+       x="160"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-5-2"
+       width="5"
+       height="60"
+       x="220"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#3f9650;fill-opacity:1;stroke:none"
+       id="rect2863-49-4"
+       width="60"
+       height="60"
+       x="225"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-8-4"
+       width="5"
+       height="60"
+       x="285"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:none"
+       id="rect2863-8-3"
+       width="60"
+       height="60"
+       x="290"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffc600;fill-opacity:1;stroke:none"
+       id="rect2863-4-52-8"
+       width="5"
+       height="60"
+       x="350"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#40003e;fill-opacity:1;stroke:none"
+       id="rect2863-2-6"
+       width="60"
+       height="60"
+       x="355"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffc600;fill-opacity:1;stroke:none"
+       id="rect2863-4-7-0"
+       width="5"
+       height="60"
+       x="415"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#f7f7f7;fill-opacity:1;stroke:none"
+       id="rect2863-3-8"
+       width="60"
+       height="60"
+       x="420"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#d100b7;fill-opacity:1;stroke:none"
+       id="rect2863-4-46-9"
+       width="5"
+       height="60"
+       x="480"
+       y="822.36218"
+       ry="0" />
+    <rect
+       style="fill:#fcff81;fill-opacity:1;stroke:none"
+       id="rect2863-31"
+       width="60"
+       height="60"
+       x="60"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-83"
+       width="5"
+       height="60"
+       x="120"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-4-4"
+       width="3.7500002"
+       height="60"
+       x="56.25"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#b6ff3a;fill-opacity:1;stroke:none"
+       id="rect2863-41-2"
+       width="60"
+       height="60"
+       x="125"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#d10000;fill-opacity:1;stroke:none"
+       id="rect2863-4-5-24"
+       width="5"
+       height="60"
+       x="185"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#b40faa;fill-opacity:1;stroke:none"
+       id="rect2863-49-5"
+       width="60"
+       height="60"
+       x="190"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffc600;fill-opacity:1;stroke:none"
+       id="rect2863-4-8-1"
+       width="5"
+       height="60"
+       x="250"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#1b021a;fill-opacity:1;stroke:none"
+       id="rect2863-8-7"
+       width="60"
+       height="60"
+       x="255"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#d100b7;fill-opacity:1;stroke:none"
+       id="rect2863-4-52-5"
+       width="5"
+       height="60"
+       x="315"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#bcbcbc;fill-opacity:1;stroke:none"
+       id="rect2863-2-7"
+       width="60"
+       height="60"
+       x="320"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#d10000;fill-opacity:1;stroke:none"
+       id="rect2863-4-7-1"
+       width="5"
+       height="60"
+       x="380"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#9a41ff;fill-opacity:1;stroke:none"
+       id="rect2863-3-6"
+       width="60"
+       height="60"
+       x="385"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#ffc600;fill-opacity:1;stroke:none"
+       id="rect2863-4-46-98"
+       width="5"
+       height="60"
+       x="445"
+       y="762.36218"
+       ry="0" />
+    <rect
+       style="fill:#b9cc8b;fill-opacity:1;stroke:none"
+       id="rect2863-492-1"
+       width="60"
+       height="60"
+       x="95"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#008eff;fill-opacity:1;stroke:none"
+       id="rect2863-4-74-3"
+       width="5"
+       height="60"
+       x="155"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-4-2-3"
+       width="5"
+       height="60"
+       x="90"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#841000;fill-opacity:1;stroke:none"
+       id="rect2863-41-5-3"
+       width="60"
+       height="60"
+       x="160"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-5-2-7"
+       width="5"
+       height="60"
+       x="220"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:none;stroke:none"
+       id="rect2863-49-4-9"
+       width="60"
+       height="60"
+       x="225"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#d100b7;fill-opacity:1;stroke:none"
+       id="rect2863-4-8-4-8"
+       width="5"
+       height="60"
+       x="285"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#191742;fill-opacity:1;stroke:none"
+       id="rect2863-8-3-6"
+       width="60"
+       height="60"
+       x="290"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#d100b7;fill-opacity:1;stroke:none"
+       id="rect2863-4-52-8-7"
+       width="5"
+       height="60"
+       x="350"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#50ff03;fill-opacity:1;stroke:none"
+       id="rect2863-2-6-0"
+       width="60"
+       height="60"
+       x="355"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-7-0-4"
+       width="5"
+       height="60"
+       x="415"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:none;stroke:none"
+       id="rect2863-3-8-8"
+       width="60"
+       height="60"
+       x="420"
+       y="702.36218"
+       ry="0" />
+    <rect
+       style="fill:#00009d;fill-opacity:1;stroke:none"
+       id="rect2863-4-46-9-4"
+       width="5"
+       height="60"
+       x="480"
+       y="702.36218"
+       ry="0" />
+    <text
+       xml:space="preserve"
+       style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="-887.26385"
+       y="46.217602"
+       id="text3905"
+       transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3907"
+         x="-887.26385"
+         y="46.217602">A</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="-828.47699"
+       y="46.217602"
+       id="text3905-0"
+       transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3907-5"
+         x="-828.47699"
+         y="46.217602">B</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="-770.76044"
+       y="42.34462"
+       id="text3905-6"
+       transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3907-0"
+         x="-770.76044"
+         y="42.34462">C</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:30.98386765px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="-712.61273"
+       y="42.34462"
+       id="text3905-0-6"
+       transform="matrix(0,-1.0327955,0.96824589,0,0,0)"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3907-5-4"
+         x="-712.61273"
+         y="42.34462">D</tspan></text>
+  </g>
+</svg>
diff --git a/src/gcm-calibrate-argyll.c b/src/gcm-calibrate-argyll.c
index 2eb7361..a664e66 100644
--- a/src/gcm-calibrate-argyll.c
+++ b/src/gcm-calibrate-argyll.c
@@ -2045,7 +2045,6 @@ gcm_calibrate_argyll_process_output_cmd (GcmCalibrateArgyll *calibrate_argyll, c
 	const gchar *title;
 	gchar *title_str = NULL;
 	const gchar *message;
-	const gchar *filename;
 	GString *string = NULL;
 	gchar *found;
 	gboolean ret = TRUE;
@@ -2170,6 +2169,7 @@ gcm_calibrate_argyll_process_output_cmd (GcmCalibrateArgyll *calibrate_argyll, c
 	/* all done */
 	found = g_strstr_len (line, -1, "(All rows read)");
 	if (found != NULL) {
+		gcm_calibrate_dialog_set_image_filename (priv->calibrate_dialog, "scan-target-good.svg");
 		vte_terminal_feed_child (VTE_TERMINAL(priv->terminal), "d", 1);
 		goto out;
 	}
@@ -2186,6 +2186,7 @@ gcm_calibrate_argyll_process_output_cmd (GcmCalibrateArgyll *calibrate_argyll, c
 		gcm_calibrate_dialog_show (priv->calibrate_dialog, GCM_CALIBRATE_DIALOG_TAB_GENERIC, title, message);
 		gcm_calibrate_dialog_set_show_button_ok (priv->calibrate_dialog, TRUE);
 		gcm_calibrate_dialog_set_show_expander (priv->calibrate_dialog, TRUE);
+		gcm_calibrate_dialog_set_image_filename (priv->calibrate_dialog, "scan-target-bad.svg");
 
 		/* TRANSLATORS: button text */
 		gcm_calibrate_dialog_set_button_ok_id (priv->calibrate_dialog, _("Retry"));
@@ -2223,6 +2224,7 @@ gcm_calibrate_argyll_process_output_cmd (GcmCalibrateArgyll *calibrate_argyll, c
 		gcm_calibrate_dialog_show (priv->calibrate_dialog, GCM_CALIBRATE_DIALOG_TAB_GENERIC, title_str, string->str);
 		gcm_calibrate_dialog_set_show_button_ok (priv->calibrate_dialog, TRUE);
 		gcm_calibrate_dialog_set_show_expander (priv->calibrate_dialog, TRUE);
+		gcm_calibrate_dialog_set_image_filename (priv->calibrate_dialog, "scan-target-bad.svg");
 
 		/* TRANSLATORS: button */
 		gcm_calibrate_dialog_set_button_ok_id (priv->calibrate_dialog, _("Use anyway"));
@@ -2249,17 +2251,18 @@ gcm_calibrate_argyll_process_output_cmd (GcmCalibrateArgyll *calibrate_argyll, c
 		g_string_append (string, _("Slowly scan the target line from left to right and release the switch when you get to the end of the page."));
 		g_string_append (string, "\n\n");
 
+		/* TRANSLATORS: dialog message, the sensor has to be above the line */
+		g_string_append (string, _("Ensure the center of the device is properly aligned with the row you are trying to measure."));
+		g_string_append (string, "\n\n");
+
 		/* TRANSLATORS: dialog message, just follow the hardware instructions */
 		g_string_append (string, _("If you make a mistake just release the switch and you'll get a chance to try again."));
 
-		/* get the image, if we have one */
-		filename = "argyll-target.png";
-
 		/* push new messages into the UI */
 		gcm_calibrate_dialog_show (priv->calibrate_dialog, GCM_CALIBRATE_DIALOG_TAB_GENERIC, title_str, string->str);
 		gcm_calibrate_dialog_set_show_button_ok (priv->calibrate_dialog, FALSE);
 		gcm_calibrate_dialog_set_show_expander (priv->calibrate_dialog, TRUE);
-		gcm_calibrate_dialog_set_image_filename (priv->calibrate_dialog, filename);
+		gcm_calibrate_dialog_set_image_filename (priv->calibrate_dialog, "scan-target.svg");
 		goto out;
 	}
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]