{"id":8570,"date":"2013-07-07T22:07:34","date_gmt":"2013-07-08T02:07:34","guid":{"rendered":"http:\/\/scruss.com\/blog\/?p=8570"},"modified":"2013-07-21T11:57:33","modified_gmt":"2013-07-21T15:57:33","slug":"a-mostly-colour-managed-workflow-for-linux-for-not-too-many","status":"publish","type":"post","link":"https:\/\/scruss.com\/blog\/2013\/07\/07\/a-mostly-colour-managed-workflow-for-linux-for-not-too-many\/","title":{"rendered":"A (mostly) colour-managed workflow for Linux for not too many $$$"},"content":{"rendered":"<p>Colour management is good. It means that what I see on the screen is what you meant it to look like, and anything I make with a colour-managed workflow you&#8217;ll see in the colours I meant it to have. (<em>Mostly<\/em>.) You can spend a lot of money to do this professionally, but you can also get most of the benefits for about $125, if you&#8217;re prepared to do some fiddly stuff.<\/p>\n<p>The most important part is calibrating your display. Hughski&#8217;s <a href=\"http:\/\/www.hughski.com\/index.html\">ColorHug<\/a> (which I&#8217;ve mentioned <a href=\"http:\/\/scruss.com\/blog\/2012\/03\/15\/colorhug\/\">before<\/a>) is as close to plug-and-play as you&#8217;ll get: plug it in, and the colour management software pops up with prompts on what to do next. Attach the ColorHug to the screen (with the newly supplied stretchy band), let it burble away for 10\u00e2\u20ac\u201c20 minutes, and the next time you log in, colours will be just right.<\/p>\n<p>Calibrating the scanner on my <a href=\"https:\/\/www.epson.com\/cgi-bin\/Store\/support\/supDetail.jsp?BV_UseBVCookie=yes&amp;infoType=Overview&amp;oid=183585&amp;prodoid=63093090\">Epson WorkForce WF-7520<\/a> was much more work, and the process could use optimization. To calibrate any scanner, you need a physical colour <a href=\"https:\/\/en.wikipedia.org\/wiki\/IT8#Targets\">target<\/a> to scan and compare against reference data. The cheapest place to get these (unless there was one in the box with your scanner) is Wolf Faust&#8217;s <a href=\"http:\/\/www.targets.coloraid.de\/\">Affordable IT 8.7 (ISO 12641) Scanner Colour Calibration Targets<\/a>. If there are a bunch of likeminded folk in your area, it&#8217;s definitely worth clubbing together on a group buy to save on shipping. It&#8217;s also less work for Wolf, since he doesn&#8217;t have to send out so many little packages.<\/p>\n<p>(<em>I&#8217;ve known of Wolf Faust since my Amiga days. He produced <a href=\"http:\/\/aminet.net\/package\/driver\/print\/CanonDisk398d\">the most glorious drivers<\/a> for Canon printers, and Jeff Walker produced the camera-ready copy for <a href=\"http:\/\/www.commodore-amiga-retro.com\/amiga\/amiga_scuzz525.htm\">JAM<\/a> using Wolf&#8217;s code. While Macs had the high end DTP sewn up back then, you could do amazing things on a budget with an Amiga.<\/em>)<\/p>\n<p><a href=\"http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/target.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8572\" alt=\"colour target\" src=\"http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/target.jpg\" width=\"640\" height=\"480\" srcset=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/target.jpg 640w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/target-160x120.jpg 160w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/target-320x240.jpg 320w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/target-400x300.jpg 400w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a>The target comes packed in a protective sleeve, and along with a CD-R containing the calibration data which matches the print run of the target. Wolf makes a lot of targets for OEMs, and cost savings from his volume clients allow him to sell to individuals cheaply.<\/p>\n<p>Scanning the thing without introducing automatic image corrections was the hard part. I found that my scanner had two drivers (<a href=\"http:\/\/manpages.ubuntu.com\/manpages\/lucid\/man5\/sane-epson2.5.html\">epson2<\/a> and <a href=\"http:\/\/manpages.ubuntu.com\/manpages\/hardy\/man5\/sane-epkowa.5.html\">epkowa<\/a>), the latter of which claimed to support 48-bit scanning. Unfortunately, it only supports 24-bit, like the epson2 driver, so whichever I chose was moot. I used the <a href=\"http:\/\/www.sane-project.org\/man\/scanimage.1.html\">scanimage<\/a> command line tool to make the scan:<\/p>\n<pre>scanimage --mode Color -x 175 -y 125 --format=tiff --resolution 300 &gt; Epson-Workforce_WF-7520-WFaust-R1.tiff<\/pre>\n<p>which looks, when reduced down to web resolution, a bit like this:<\/p>\n<p><a href=\"http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/Epson-Workforce_WF-7520-WFaust-R1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8573\" alt=\"Epson-Workforce_WF-7520-WFaust-R1\" src=\"http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/Epson-Workforce_WF-7520-WFaust-R1.jpg\" width=\"640\" height=\"456\" srcset=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/Epson-Workforce_WF-7520-WFaust-R1.jpg 640w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/Epson-Workforce_WF-7520-WFaust-R1-160x114.jpg 160w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/Epson-Workforce_WF-7520-WFaust-R1-320x228.jpg 320w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/Epson-Workforce_WF-7520-WFaust-R1-421x300.jpg 421w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a>It looks a lot darker than the physical target, so it&#8217;s clear that the scanner needs calibrating. To do this, you need two tools from the <a href=\"http:\/\/www.argyllcms.com\/\">Argyll Colour Management System<\/a>. The first creates a text representation of the scanned target&#8217;s colour patches:<\/p>\n<pre>scanin -v Epson-Workforce_WF-7520-WFaust-R1.tiff \/usr\/share\/color\/argyll\/ref\/it8.cht IT87\/r130227.txt diag.tiff<\/pre>\n<p>The result is a smallish <a href=\"http:\/\/www.argyllcms.com\/doc\/ti3_format.html\">text file<\/a> <span style=\"font-family: andale mono,times;\">Epson-Workforce_WF-7520-WFaust-R1.ti3<\/span> which needs one more step to make a standard <a href=\"https:\/\/en.wikipedia.org\/wiki\/ICC_profile\">ICC profile<\/a>:<\/p>\n<pre>colprof -A Epson -M 'Workforce WF-7520' -D 'WFaust R1' -ax -qm Epson-Workforce_WF-7520-WFaust-R1<\/pre>\n<p>I didn&#8217;t quite need to add that much metadata, but I could, so I did. The resultant ICC file can be used to apply colour calibrations to scanned images. Here&#8217;s the target scan, corrected:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-8574 alignleft\" onmouseover=\"this.src='http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/Epson-Workforce_WF-7520-WFaust-R1.jpg';\" onmouseout=\"this.src='http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/Epson-Workforce_WF-7520-WFaust-R1-corrected.jpg';\" alt=\"Epson-Workforce_WF-7520-WFaust-R1-corrected\" src=\"http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/Epson-Workforce_WF-7520-WFaust-R1-corrected.jpg\" width=\"640\" height=\"456\" srcset=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/Epson-Workforce_WF-7520-WFaust-R1-corrected.jpg 640w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/Epson-Workforce_WF-7520-WFaust-R1-corrected-160x114.jpg 160w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/Epson-Workforce_WF-7520-WFaust-R1-corrected-320x228.jpg 320w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/Epson-Workforce_WF-7520-WFaust-R1-corrected-421x300.jpg 421w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>(I&#8217;ve made this a mouseover with the original image, so you can see the difference. Also, yes, there <em>is<\/em> a greasy thumb-print on my scanner glass near the bottom right, thank you so much for noticing.)<\/p>\n<p>I used <span style=\"font-family: andale mono,times;\">tifficc<\/span> from the\u00c2\u00a0<a href=\"http:\/\/www.littlecms.com\/\">Little CMS<\/a> package to apply the colour correction:<\/p>\n<pre>tifficc -v -i Epson-Workforce_WF-7520-WFaust-R1.icc Epson-Workforce_WF-7520-WFaust-R1.tiff Epson-Workforce_WF-7520-WFaust-R1-corrected.tiff<\/pre>\n<p>There are probably many easier, quicker ways of doing this, but this was the first thing I found that worked.<\/p>\n<p>To show you a real example, here&#8217;s an un-retouched scan of the cover of <a href=\"http:\/\/www.algrove.com\/home.aspx\">Algrove Publishing<\/a>&#8216;s book \u00e2\u20ac\u0153<a href=\"http:\/\/www.leevalley.com\/us\/garden\/page.aspx?p=10014&amp;cat=2,51553,10014\">All the Knots You Need<\/a>\u00e2\u20ac\u009d, scanned at 75 dpi. Mouseover to see the corrected version:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8576\" onmouseover=\"this.src='http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/all-the-knots-you-need_algrove-corrected.jpg';\" onmouseout=\"this.src='http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/all-the-knots-you-need_algrove.jpg';\" alt=\"all-the-knots-you-need_algrove\" src=\"http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/all-the-knots-you-need_algrove.jpg\" width=\"440\" height=\"664\" srcset=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/all-the-knots-you-need_algrove.jpg 440w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/all-the-knots-you-need_algrove-106x160.jpg 106w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/all-the-knots-you-need_algrove-212x320.jpg 212w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/07\/all-the-knots-you-need_algrove-198x300.jpg 198w\" sizes=\"auto, (max-width: 440px) 100vw, 440px\" \/><\/p>\n<p>(<em>Incidentally, there are two old but well-linked programs that are out there that purport to do scanner calibration:\u00c2\u00a0<a href=\"http:\/\/scarse.sourceforge.net\/\">Scarse<\/a> and <a href=\"http:\/\/lprof.sourceforge.net\/\">LPROF<\/a>. <span style=\"color: #ff0000;\"><strong>Don&#8217;t use them!<\/strong><\/span> They&#8217;re really hard to build on modern systems, and the Argyll tools work well.<\/em>)<\/p>\n<p>The last part of my workflow that remains uncalibrated is my printer. I could make a target with Argyll, print it, scan it, colour correct it, then use that as the input to <span style=\"font-family: andale mono,times;\">colprof<\/span> as above. I&#8217;m suspecting the results would be mediocre, as my scanner&#8217;s bit depth isn&#8217;t great, and I&#8217;d have to do this process for every paper and print setting combination. I&#8217;d also have to work out what magic <a href=\"http:\/\/www.cups.org\/\">CUPS<\/a> does and compensate. Maybe later, but not yet.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Colour management is good. It means that what I see on the screen is what you meant it to look like, and anything I make with a colour-managed workflow you&#8217;ll see in the colours I meant it to have. (Mostly.) You can spend a lot of money to do this professionally, but you can also [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7,11],"tags":[2679,2681,2680,2687,2682,270,2683,807,2685,808,305,2684],"class_list":["post-8570","post","type-post","status-publish","format-standard","hentry","category-computers-suck","category-photo","tag-argyll","tag-cms","tag-icc","tag-instagram","tag-lcms","tag-linux","tag-sane","tag-scan","tag-target","tag-tiff","tag-ubuntu","tag-wolf_faust"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pQNZZ-2ee","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/8570","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/comments?post=8570"}],"version-history":[{"count":10,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/8570\/revisions"}],"predecessor-version":[{"id":8585,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/8570\/revisions\/8585"}],"wp:attachment":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/media?parent=8570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/categories?post=8570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/tags?post=8570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}