Cameras typically output JPEG files. Spectral measurement thus proceeds most easily if software can directly import such files, extract spectra, and manipulate the spectra into intensity, transmittance, and absorbance data. Data export to other software, such as spreadsheets, is also critical, as students will want to adjust for stray light or saturation once they realize the problems exist. One could, of course, use commercial graphics software to pre‐process the images and commercial mathematical packages such as Matlab or Mathematica to do the manipulations, but this would subvert one of the goals, making data manipulation accessible to all students. We have thus made available both the source code and executable file for software to carry out the necessary processing. CodeGear RadStudio Delphi 2007 was employed, using IOComp's ixyPlot and related components. A version of the software that will run in a web browser (Java code) is being planned. It is obvious that a native cell phone application would be highly desirable. It is likely that a reader of this paper can write such an application sooner than the current authors can! An impediment to native cell phone coding is the range of common operating systems (Windows CE Mobile, Symbian, Palm, Google/Android, iPhone/Linux, RIM/Blackberry, ...).
The software loads reference and sample spectra (I0 and I respectively) from a directory of the user's choice; picture preview is not available inside the program, so the Windows "Thumbnail" function in Windows Explorer is helpful for selecting data. If files are too big to conveniently navigate in the image displays, Windows Paint is entirely adequate for making smaller JPG files, either by cutting out the desired data and making a new, smaller inset file or by "stretching" the file to some smaller footprint. Resolution must suffer from compression, but since we have not yet characterized system resolution we do not yet have data on this aspect of performance. If some user has a mercury penlamp or other line source, students could easily "play with" the parametric dependence of dispersion, resolution, and throughput. In any event, once spectra are loaded, one can use either typed‐in pixel coordinates or a point and click mouse interface to tell the software where the useful spectral data appear, how many pixels high the integration area should be, and the range of wavelengths putatively covered by the extracted spectrum. Once the desired area is defined, plots of I, I0, both on the same axes, T, and A can be rendered. Because one must assume that no two frames are taken with the same hand‐held camera orientation, an algorithm to linearly interpolate I(λ) applicable to the wavelengths of I0 (λ) is included in the transmittance computations. Comma‐ delimited lists of all extracted and computed data are available once any have been plotted. One can then transfer the data to a spreadsheet, allowing improved data processing. For example, an average stray light level could be subtracted.