ChartThrob: A Tool for Printing Digital Negatives

A few months back at a PHIG meeting, I met Thomas Howard, and saw how he was using charts to hand-profile his process for making digital negatives for platinum-process contact printing. I figured this could be automated, so: I automated it, and made a program called ChartThrob, which runs right inside Adobe Photoshop. I let a few folks on APUG and now HybridPhoto try it out, and after a few unexpected glitches (who knew Photoshop could have fractional pixels?), it was ready for public, free-for-everyone abuse.

ChartThrob is a a JSX-format javascript for Adobe Photoshop. It works with all versions of Photoshop since Photoshop CS2. It works for both Windows and Mac versions of Photoshop. Since 2006 thousands of photgraphers have used ChartThrob to make terrific prints. It's used in college photo curricula and can even be used to optimize picture quality in self-published photo books through services like Blurb and Lulu. And: It's free.

ChartThrob creates profiles for your process, for your printer, and lets you create consistently-beautiful digital negatives from your pictures — every single time.

Version: 1.14 — April 2016

Right-Mouse-Click and Select "Save Link As..." Here for the Current Version of ChartThrob.

Typically, "Save As..." this (for Windows - Mac is similar):
  C:\Program Files\Adobe\Adobe Photoshop CS4\Presets\Scripts\ChartThrob.jsx

The very latest ChartThrob and updates are also available on GitHub. The version here should be current, but you may also find more info and alternative branches there.

To be notified whenever new updates appear, keep an eye on the PhotoRant RSS feed.

Installing ChartThrob

To install it, click "Save As..." on this link. Save the file as "ChartThrob.jsx" in your Photoshop scripts directory, which will typically be something like "Adobe Photoshop CS2/Presets/Scripts" (the location within the Photoshop directory is the same for both Windows and Macintosh)

That's it! The next time you start Photoshop, ChartThrob will appear as an option under Photoshop's "File—>Scripts" menu.

Using ChartThrob

ChartThrob is really two scripts in one. First, it's a script for creating grayscale calibration charts. Second, it's a tool for automatically evaluating scanned prints of those charts and setting up appropriate profiles depending on the nature of your printing process.

The ChartThrob workflow has a few basic steps:

  1. Create a Grayscale chart in ChartThrob.
  2. Print a digtial negative from that chart (on Pictorico material etc).
  3. Contact-print that negative onto your medium of choice (platinum, mimeo, silver-gelatine paper, sun prints, etc).
  4. Scan the resultant positive print.
  5. Crop the scan back to the original chart boundaries.
  6. Analyze the chart in ChartThrob — the result will be a new Curves layer containing a Printing Curve, which you can use on the spot or save for repeated use later.
  7. Apply that curve to any B&W images you like, before printing them to digital negatives. The curve will correct the original image grayscale values to neatly fit to the grayscale range of your chosen medium.

So let's begin!

Create a Chart

From any Photoshop session, you can start-up ChartThrob by selecting "File—>Scripts—>ChartThrob."


If you have no documents open and call ChartThrob, you should see a dialog box similar to the one above (if you have documents open, the dialog will be more complex, but will still contain this info) (The illustrations in this doc page show both Windows and Mac examples). Pressing "Help" will provide you with step-by-step instructions, or pressing "Build New Chart Now" will do exactly that — it will create a new document and start filling it with profiling information. Photoshop draws very quickly, but this will typically take several seconds — especially if you have the 'Numbers' option checked. The result will look like the picture below (with or without the numeric labels).


This is a positive chart — that is, you'll either have to invert it when you print it to a negative, or before (depending on your printer). The text at the bottom reads: "THIS IS A POSITIVE IMAGE WITH DARK TEXT ON WHITE." Keep that in mind, because ChartThrob creates and analyzes positive images.


You may want to resize the chart when printing, by default it's pretty large, paper-wise. You should be able to resize it according to your own printing habits. Then print to a (typically transparent) negative, and contact-print that negative according to whatever process suits your fancy: silver-gelative, old xerox, woodburytype, cyanotype, whatever, so that once again you have a positive print that looks like the original chart. Be sure that you have a solid, dependable printing process so that you can repeat your results later. The chart print doesn't need to be huge, just big enough to see the individual patches (platinum printers will probably be happy to hear that, considering they pay by the droplet...).

If you have a good grasp of your printing already, try to print so that the midtones are as properly-exposed as you think you can get them. The blacks and pure whites will work themselves out.

Also, be sure that your printing is uniform across the entire size of the chart — if the exposure varies from one side to the other, or from the center of your prints to the edges, there won't be any way for the calibrator to second-guess that. You'll just get junk.


Okay, so now you've made a positive print from the chart. Let it dry, and then scan it, making sure you have a linear (gamma 1.0) scan with the full grayscale range (see the FAQ below on how to do this).


Back in Photoshop with yur scan, crop the scan back to the boundaries of the chart, and you'll have something perhaps like the image here.



With this new scanned print loaded, call ChartThrob again. The dialog box will still let you create a new chart if you want one, but now it also contains options for analysing a scanned printed chart.

ctScanDialog.gifIf we hit <return> or press "Analyze," that's exactly what ChartThrob will do: analyze the scanned chart, adjusting for paper tone and process color and evaluating every patch. When done, it will display a brief report telling you everything's okay, and will add a new curves layer to your scanned chart document, called "Print Curve."

ctCurve.gifIf we double-click the "Print Curve" in the Photoshop layers palette to view the resultant curve, it would look like the one shown here (we're just showing the curve rather than the whole dialog, to save web-page space).

The new curve layer is hidden, because the curve isn't meant for adjusting the scan itself — instead, it's for adjusting other B&W images so that they can be printed using the same process that you used to create the scan.


When a ChartThrob curve is applied to a B&W image, the image's original gray values will be remapped so that they will print to match the grayscale range of the target printing medium, as long as you're consistent in the print exposure and processing. So if you expose a silver-gelatin contact print for 30 seconds, then as long as you expose and process all subsequent prints the same amount, they should print consistently and the curves will adjust them perfectly to that tonal range.

You can apply the curve to other images either by saving & loading it as a Photoshop .csv file, or just drag the curves layer from the layers palette onto another picture if it's opened in Photoshop.


With the curve applied, the original image may look dull and washed out on the monitor, but those tones are what's needed to hit the darkest blacks and whitest whites that the particular printing process can handle — at least the tones that were in the printed chart. If the chart is strongly over or under exposed, ChartThrob will still make a curve, though it will tell you if the midtones seem to be strongly skewed.

Checking Your Results

If things have gone well, you can take your original chart (as created by ChartThrob), apply that correction curve to it, print again and you should get a full range of grays from the new corrected print.

The ChartThrob FAQ

Will ChartThrob work with 16-bit images? I keep giving it 16-bit scans but it reduces them to 8-bit.
Yes. You can absolutely apply a printing curve made by ChartThrob to 16-bit images. Just apply the curve in the usual ways. ChartThrob does all of its calibration work in 8-bit, but unless you have an extremely narrow and contrasty process (say, rubber stamps), that should be plenty of precision for the purpose. Applying the resultant curve to a 16-bit image will still give you a 16-bit image.
What about 32-bit images?
Do you have a 32-bit printer? Call me...
Can ChartThrob be ued to calibrate B&W images printed by bookprint services like Lulu and Blurb, or on my local newspaper's press?
If the printer is reasonably consistent from run to run, then absolutely yes.
How do I contact you to make a report or tell you my great idea for an enhancement or to send you money?
ChartThrob is free. You are, however, welcome to buy my photos. You can contact me here at PhotoRant as either 'kevin' or 'bjorke' at
How can I be notified of new versions of ChartThrob?
Click "Watch" on the GitHub page.
DoesChartThrob work with Photoshop CS3, now that it's out?
I only have Photoshop 5 (or 7, or CS). Will you change ChartThrob to work with my old version of Photoshop?
Nope. ChartThrob uses UI tools that were introduced with CS2, and Photoshop pre-7 didn't have scripting at all.
Why doesn't ChartThrob set curve points for all of the patches? It only seems to set about a dozen points on the curve.
This is a limitation of Photoshop, but 14 points (along a parametric curve) seem to be plenty for real-world printing. The full range of patches are there for you to see.
What do all those extra check boxes do?
Try them out!
Can you make ChartThrob as an Action instead? I don't like having to call scripts from the 'File' menu, I'd rather see it in the actions palette and attach it to a hot key.
Actions can't do everything scripts can do, especially the stuff that ChartThrob does. You can create an Action that will start-up ChartThrob. That's easy, do it the normal way. The Action won't see the stuff you click in the ChartThrob dialogue boxes, though. That seems to be a limitation of the current Photoshop.
I resized the chart scan to be really, really small and now I'm getting junky values from ChartThrob.
The program averages-out an area of the scanned chart and samples this average. It does this to compensate for grain and paper texture. If the scan is too small to get a good average, the quality of the curve will suffer. In general, don't let your scanned-chart image get smaller than, say, 600 pixels across.
The defaut chart size is 4 inches at 300 dpi. I want 7.3 inches at 1440 dpi. Can you resize it?
You can use Photoshop's 'Image Size' command for now. I'm considering adding more print-size options, though they will make the dialog box more complicated.
Should I be setting stuff up using "Relative Colormetric" in the print dialog? What color space should I use?
It doesn't really matter what your print settings are, as long as they are always the same each time you make a printing negative. In general, try to avoid anything in your printing or scanning processes described as "automatic," since such functions may be changing stuff behind your back — and be sure that your scan is in the same color space (particularly w.r.t. gamma) as the B&W images you plan to print.
Be sure that your scan covers the full print range from darkest to lightest within the straight-line portion of the scan. Some scanners will "roll-off" the shadows and/or highlights. This sort of compression of the original print values will give ChartThrob a distorted input.
You want the full range when scanning. These dialogs from EpsonScan™
show that the Automatic exposure of a printed ChartThrob chart
distorts the grayscale values. Instead, manually set the max and min pointers
to beyond the brightest and darkest vales, & set the gamma to 1.00.
Note that the entire grayscale will thus be linear: the "shoulder" & "toe" buttons will be ignored.
I have a fax scanner and the quality is not so great. I'm losing light (or dark) tones in the printed chart! I can see them, but my scanner can't
Either get a better scanner, borrow a better scanner, or try creating a "camera scan" — take a glare-free, evenly-lit photo of the printed chart using a good-quality digital camera — this may also be a solution for printing materials where the dark tones are more reflective than the light tones, thus "fooling" the scanner and not scanning well.
Why isn't the generated chart a negative, since I'll be printing it as a negative? It hurts my hand to have to press <Ctrl-I> to invert the chart before printing.
Get a better grip on your printing! Some people print directly from a positive image to a negative and let their print driver do the inversion for them. Others need to print from an inverted image. ChartThrob can't know if you are a negative person or a positive person. So it looks on the bright side and assumes that everyone is positive.
Why does ChartThrob use the font 'Myriad Pro,' which I don't have? I have to click lots of stupid 'okay' dialog boxes when I generate a new chart.<
First: Upgrade your version of (free) ChartThrob and/or (not free but worth it) Photoshop. ChartThrob doesn't actually use "Myriad" — it only uses "Arial." I'm told it's "an Adobe Thing" which was also updated in Photoshop CS3. IFF you get those (annoying but harmless) "font not found" messages: Just upgrade to V1.06 or later. Or, if you're insanely determined to use an old version, install 'Myriad' and those dialog boxes will vanish forever.
Where can I find out more about ChartThrob, and compare results with other users?
See this discussion thread at In addition, check out this page by Michael Koch-Schulte, who has done additional work in understanding how to get the most out of the varying color sensitivities of different alt-process materials: A Quick Guide to Making Digital Negatives with RNP-Arrays and ChartThrob. Or just poke it into Google — it's been encouraging to see ChartThrob users have cropped up all over the net.
Sometimes ChartThrob seems to take a long time to run. How do I know that it's working at all?
Leave the 'Histogram,' 'History,' or 'Info' panels open, and you'll see just how fast and furious ChartThrob's drawing and analysis really is. It's edu-taining!

October 23, 2006





Comments on "ChartThrob: A Tool for Printing Digital Negatives"

Juan Buhler
October 24, 2006 02:43 PM

Very nice, Kevin. I don't do printing in that way, but in the back of my mind I've wanted to write something like this, minus the chart (ie, working on an arbitrary image) in order to calibrate the printing of photos in Lulu books. I've printed more than one of the same in different batches and they seem to be consistent enough.

Charles Ryberg
October 24, 2006 03:07 PM

I'm using an Epson R1800 with cheap second party inks which are very hard to curve. Until ChartThrob I had do make do with some hand made curves. ChartThrob gave me beautiful curves for both Van Dyke Brown and Cyanotype--the images the new curves give me are WAY better than those with my own curves. This script is fantastic.
Charles Portland OR


All content on is 1994-2017 by Kevin Bjorke. All Rights Reserved.