halation 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -81,6 +81,72 @@
81
81
  <td valign='top' width="33%">
82
82
 
83
83
 
84
+ <ul id="alpha_C" class="alpha">
85
+ <li class="letter">C</li>
86
+ <ul>
87
+
88
+ <li>
89
+ <span class='object_link'><a href="Halation/Config/Camera.html" title="Halation::Config::Camera (class)">Camera</a></span>
90
+
91
+ <small>(Halation::Config)</small>
92
+
93
+ </li>
94
+
95
+ <li>
96
+ <span class='object_link'><a href="Halation/Coerce.html" title="Halation::Coerce (class)">Coerce</a></span>
97
+
98
+ <small>(Halation)</small>
99
+
100
+ </li>
101
+
102
+ <li>
103
+ <span class='object_link'><a href="Halation/Config.html" title="Halation::Config (class)">Config</a></span>
104
+
105
+ <small>(Halation)</small>
106
+
107
+ </li>
108
+
109
+ </ul>
110
+ </ul>
111
+
112
+
113
+ <ul id="alpha_E" class="alpha">
114
+ <li class="letter">E</li>
115
+ <ul>
116
+
117
+ <li>
118
+ <span class='object_link'><a href="Halation/Engine.html" title="Halation::Engine (class)">Engine</a></span>
119
+
120
+ <small>(Halation)</small>
121
+
122
+ </li>
123
+
124
+ <li>
125
+ <span class='object_link'><a href="Halation/ExifToolImage.html" title="Halation::ExifToolImage (class)">ExifToolImage</a></span>
126
+
127
+ <small>(Halation)</small>
128
+
129
+ </li>
130
+
131
+ </ul>
132
+ </ul>
133
+
134
+
135
+ <ul id="alpha_F" class="alpha">
136
+ <li class="letter">F</li>
137
+ <ul>
138
+
139
+ <li>
140
+ <span class='object_link'><a href="Halation/Roll/Frame.html" title="Halation::Roll::Frame (class)">Frame</a></span>
141
+
142
+ <small>(Halation::Roll)</small>
143
+
144
+ </li>
145
+
146
+ </ul>
147
+ </ul>
148
+
149
+
84
150
  <ul id="alpha_H" class="alpha">
85
151
  <li class="letter">H</li>
86
152
  <ul>
@@ -93,6 +159,51 @@
93
159
  </ul>
94
160
  </ul>
95
161
 
162
+
163
+ <ul id="alpha_L" class="alpha">
164
+ <li class="letter">L</li>
165
+ <ul>
166
+
167
+ <li>
168
+ <span class='object_link'><a href="Halation/Config/Lens.html" title="Halation::Config::Lens (class)">Lens</a></span>
169
+
170
+ <small>(Halation::Config)</small>
171
+
172
+ </li>
173
+
174
+ </ul>
175
+ </ul>
176
+
177
+
178
+ <ul id="alpha_R" class="alpha">
179
+ <li class="letter">R</li>
180
+ <ul>
181
+
182
+ <li>
183
+ <span class='object_link'><a href="Halation/Roll.html" title="Halation::Roll (class)">Roll</a></span>
184
+
185
+ <small>(Halation)</small>
186
+
187
+ </li>
188
+
189
+ </ul>
190
+ </ul>
191
+
192
+
193
+ <ul id="alpha_S" class="alpha">
194
+ <li class="letter">S</li>
195
+ <ul>
196
+
197
+ <li>
198
+ <span class='object_link'><a href="Halation/Script.html" title="Halation::Script (class)">Script</a></span>
199
+
200
+ <small>(Halation)</small>
201
+
202
+ </li>
203
+
204
+ </ul>
205
+ </ul>
206
+
96
207
  </td>
97
208
  </tr>
98
209
  </table>
@@ -102,7 +213,7 @@
102
213
  </div>
103
214
 
104
215
  <div id="footer">
105
- Generated on Wed May 4 22:46:35 2016 by
216
+ Generated on Sat May 28 22:28:56 2016 by
106
217
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
107
218
  0.8.7.6 (ruby-2.1.7).
108
219
  </div>
@@ -43,7 +43,7 @@
43
43
 
44
44
  <ul id="full_list" class="class">
45
45
  <li id="object_" class="odd"><div class="item" style="padding-left:30px"><span class='object_link'><a href="top-level-namespace.html" title="Top Level Namespace (root)">Top Level Namespace</a></span></div></li>
46
- <li id='object_Halation' class='even'><div class='item' style='padding-left:30px'><span class='object_link'><a href="Halation.html" title="Halation (module)">Halation</a></span><small class='search_info'>Top Level Namespace</small></div></li>
46
+ <li id='object_Halation' class='even'><div class='item' style='padding-left:30px'><a class='toggle'></a> <span class='object_link'><a href="Halation.html" title="Halation (module)">Halation</a></span><small class='search_info'>Top Level Namespace</small></div><ul><li id='object_Halation::Coerce' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="Halation/Coerce.html" title="Halation::Coerce (class)">Coerce</a></span> &lt; Object<small class='search_info'>Halation</small></div></li><li id='object_Halation::Config' class='collapsed even'><div class='item' style='padding-left:45px'><a class='toggle'></a> <span class='object_link'><a href="Halation/Config.html" title="Halation::Config (class)">Config</a></span> &lt; Object<small class='search_info'>Halation</small></div><ul><li id='object_Halation::Config::Camera' class='collapsed'><div class='item' style='padding-left:60px'><span class='object_link'><a href="Halation/Config/Camera.html" title="Halation::Config::Camera (class)">Camera</a></span> &lt; Object<small class='search_info'>Halation::Config</small></div></li><li id='object_Halation::Config::Lens' class='collapsed'><div class='item' style='padding-left:60px'><span class='object_link'><a href="Halation/Config/Lens.html" title="Halation::Config::Lens (class)">Lens</a></span> &lt; Object<small class='search_info'>Halation::Config</small></div></li></ul></li><li id='object_Halation::Engine' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="Halation/Engine.html" title="Halation::Engine (class)">Engine</a></span> &lt; Object<small class='search_info'>Halation</small></div></li><li id='object_Halation::ExifToolImage' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="Halation/ExifToolImage.html" title="Halation::ExifToolImage (class)">ExifToolImage</a></span> &lt; Object<small class='search_info'>Halation</small></div></li><li id='object_Halation::Roll' class='collapsed odd'><div class='item' style='padding-left:45px'><a class='toggle'></a> <span class='object_link'><a href="Halation/Roll.html" title="Halation::Roll (class)">Roll</a></span> &lt; Object<small class='search_info'>Halation</small></div><ul><li id='object_Halation::Roll::Frame' class='collapsed'><div class='item' style='padding-left:60px'><span class='object_link'><a href="Halation/Roll/Frame.html" title="Halation::Roll::Frame (class)">Frame</a></span> &lt; Object<small class='search_info'>Halation::Roll</small></div></li></ul></li><li id='object_Halation::Script' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="Halation/Script.html" title="Halation::Script (class)">Script</a></span> &lt; Object<small class='search_info'>Halation</small></div></li></ul></li>
47
47
 
48
48
  </ul>
49
49
  </div>
@@ -84,7 +84,7 @@ DEALINGS IN THE SOFTWARE.</p>
84
84
  </div></div>
85
85
 
86
86
  <div id="footer">
87
- Generated on Wed May 4 22:46:35 2016 by
87
+ Generated on Sat May 28 22:28:56 2016 by
88
88
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
89
89
  0.8.7.6 (ruby-2.1.7).
90
90
  </div>
@@ -61,11 +61,221 @@
61
61
 
62
62
  <div id="content"><div id='filecontents'><h1>Halation</h1>
63
63
 
64
+ <p><a href="https://badge.fury.io/rb/halation"><img src="https://badge.fury.io/rb/halation.svg" alt="Gem Version"></a>
65
+ <a href="https://coveralls.io/github/amclain/halation?branch=master"><img src="https://coveralls.io/repos/github/amclain/halation/badge.svg?branch=master" alt="Coverage Status"></a>
66
+ <a href="http://www.rubydoc.info/gems/halation"><img src="https://img.shields.io/badge/docs-api-blue.svg" alt="API Documentation"></a>
67
+ <a href="https://github.com/amclain/halation/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-yellowgreen.svg" alt="MIT License"></a></p>
68
+
64
69
  <p>Add Exif metadata to film photographs.</p>
70
+
71
+ <h2>Issues, Bugs, Feature Requests</h2>
72
+
73
+ <p>Any bugs and feature requests should be reported on the GitHub issue tracker:</p>
74
+
75
+ <p><a href="https://github.com/amclain/halation/issues">https://github.com/amclain/halation/issues</a></p>
76
+
77
+ <p><strong>Pull requests are preferred via GitHub.</strong></p>
78
+
79
+ <p>Mercurial users can use <a href="http://hg-git.github.io/">Hg-Git</a> to interact with
80
+ GitHub repositories.</p>
81
+
82
+ <h2>Installation</h2>
83
+
84
+ <p>Halation is available as a Ruby gem.</p>
85
+
86
+ <ol>
87
+ <li><p>Install <a href="https://www.ruby-lang.org">Ruby</a> 2.1 or higher.</p>
88
+
89
+ <ul>
90
+ <li>Windows: Use <a href="http://rubyinstaller.org/downloads/">RubyInstaller</a>.</li>
91
+ <li>Mac: Use <a href="https://www.ruby-lang.org/en/documentation/installation/#homebrew">homebrew</a>.</li>
92
+ <li>Linux: Use <a href="https://github.com/sstephenson/rbenv#basic-github-checkout">rbenv</a>.</li>
93
+ <li><a href="https://www.ruby-lang.org/en/documentation/installation">Additional installation instructions</a></li>
94
+ </ul></li>
95
+ <li><p>Install <a href="http://www.sno.phy.queensu.ca/%7Ephil/exiftool/">ExifTool</a>.</p></li>
96
+ <li><p>Open the <a href="http://www.addictivetips.com/windows-tips/windows-7-elevated-command-prompt-in-context-menu/">command line</a>
97
+ and type:</p></li>
98
+ </ol>
99
+
100
+ <pre class="code text"><code class="text"> gem install halation
101
+ </code></pre>
102
+
103
+ <h2>Configuration</h2>
104
+
105
+ <p>Halation stores its global configuration data in <code>.halation</code> in the system&#39;s
106
+ user directory. This is typically <code>~/.halation</code> on Mac and *nix-based systems,
107
+ or <code>C:\Users\.halation</code> on Windows.</p>
108
+
109
+ <blockquote>
110
+ <p>Halation uses the <a href="http://www.yaml.org/spec/1.2/spec.html#Preview">YAML syntax</a>
111
+ for its configuration files.</p>
112
+ </blockquote>
113
+
114
+ <p>By default Halation uses a global configuration file, <code>~/.halation/config.yml</code>.
115
+ This is where your generic settings are stored, like your name, copyright info,
116
+ and information about your cameras.</p>
117
+
118
+ <pre class="code yaml"><code class="yaml"># Example config.yml
119
+ ---
120
+ artist: &quot;Example User&quot;
121
+ copyright: &quot;2016 Example User&quot;
122
+ cameras:
123
+ - tag: &quot;rz67&quot;
124
+ make: &quot;Mamiya&quot;
125
+ model: &quot;Mamiya RZ67 Pro II&quot;
126
+ lenses:
127
+ - tag: 65
128
+ model: &quot;M65mm f/4L-A&quot;
129
+ focal_length: 65
130
+ - tag: 110
131
+ model: &quot;Z110mm f/2.8W&quot;
132
+ focal_length: 110
133
+ - tag: 180
134
+ model: &quot;Z180mm f/4.5W-N&quot;
135
+ focal_length: 180
136
+ - tag: 250
137
+ model: &quot;M65mm f/4L-A&quot;
138
+ focal_length: 250
139
+ </code></pre>
140
+
141
+ <h2>Tags</h2>
142
+
143
+ <p>Tags are user-defined values that serve as a quick and simple way to reference
144
+ complex information.</p>
145
+
146
+ <p>Why is this important? Let&#39;s say you shot a roll of ten images with several
147
+ different lenses. It would be cumbersome to have to specify a model number
148
+ like <code>Z110mm f/2.8W</code> (and all the other lens information) on each of the frames.
149
+ Even more importantly, if you&#39;re processing batches of images over a long period
150
+ of time (months, years), you&#39;re bound to make mistakes in the spelling of the
151
+ model number. This is important because any software that catalogs images based
152
+ on Exif data (Lightroom, Flickr) doesn&#39;t know how to deal with these
153
+ inconsistencies. This means <code>Z110mm f/2.8W</code> and <code>Z110mm f/2.8 W</code> will be
154
+ considered two different lenses by the software (did you see the difference?),
155
+ even though we as humans understand they&#39;re the same thing. If you try to filter
156
+ by lens in Lightroom, some of the images will be under one spelling and some
157
+ will be under the other, even though they were both shot with the same
158
+ 110mm lens.</p>
159
+
160
+ <p>Tags solve this problem by letting us define all of the complex,
161
+ infrequently-changing data in one place. We can then reference that complex
162
+ data by its <code>tag</code>. For example, if we have a 65mm lens and a 110mm lens we can
163
+ define their information once and tag them as <code>65</code> and <code>110</code> respectively (we
164
+ choose the tag names).</p>
165
+
166
+ <pre class="code yaml"><code class="yaml">lenses:
167
+ - tag: 65
168
+ model: &quot;M65mm f/4L-A&quot;
169
+ focal_length: 65
170
+ - tag: 110
171
+ model: &quot;Z110mm f/2.8W&quot;
172
+ focal_length: 110
173
+ </code></pre>
174
+
175
+ <p>Now when we want to reference which lens was used when capturing a particular
176
+ frame, all we have to do is specify the tag and Halation will fill in the
177
+ correct Exif data for that lens when the image file is processed.</p>
178
+
179
+ <pre class="code yaml"><code class="yaml">frames:
180
+ - number: 1
181
+ lens: 110
182
+ - number: 2
183
+ lens: 65
184
+ - number: 3
185
+ lens: 110
186
+ </code></pre>
187
+
188
+ <h2>Processing A Roll</h2>
189
+
190
+ <p>Halation requires all of the image files for a roll of film to be in the same
191
+ directory. The images should be named in ascending alphabetical order, with the
192
+ first frame of the roll at the start of the list and the last frame at the end.
193
+ This is typically the default when scanners save files. Halation will scan for
194
+ tiff files (<code>.tif</code>, <code>.tiff</code>), which is the ideal format, as well as jpeg files
195
+ (<code>.jpg</code>, <code>.jpeg</code>).</p>
196
+
197
+ <p>This directory should also contain a <code>roll.yml</code> file, which specifies the data
198
+ for each frame (image file) on the roll of film. A new <code>roll.yml</code> file can be
199
+ generated in the current directory with the following command:</p>
200
+
201
+ <pre class="code text"><code class="text"> halation --new-roll
202
+ </code></pre>
203
+
204
+ <p>The data for the roll can then be entered into the file:</p>
205
+
206
+ <pre class="code yaml"><code class="yaml"># Example roll.yml
207
+ ---
208
+ date: &quot;2016-01-01&quot;
209
+ camera: &quot;rz67&quot;
210
+ lens: 110
211
+ iso: 100
212
+ frames:
213
+ - number: 1
214
+ shutter: &quot;1/125&quot;
215
+ aperture: 8
216
+ - number: 2
217
+ shutter: &quot;2&quot;
218
+ lens: 65
219
+ aperture: 16
220
+ - number: 3
221
+ lens: 65
222
+ shutter: &quot;0.5&quot;
223
+ aperture: 16
224
+ - number: 4
225
+ lens: 65
226
+ shutter: &quot;0.5&quot;
227
+ aperture: 16
228
+ - number: 5
229
+ shutter: &quot;1/250&quot;
230
+ aperture: 4
231
+ - number: 6
232
+ shutter: &quot;1/125&quot;
233
+ aperture: 8
234
+ - number: 7
235
+ shutter: &quot;1/125&quot;
236
+ aperture: 8
237
+ - number: 8
238
+ shutter: &quot;1/60&quot;
239
+ aperture: 22
240
+ - number: 9
241
+ date: &quot;2016-01-02&quot;
242
+ shutter: &quot;1/400&quot;
243
+ aperture: 8
244
+ flash: yes
245
+ - number: 10
246
+ date: &quot;2016-01-02&quot;
247
+ shutter: &quot;1/400&quot;
248
+ aperture: 8
249
+ flash: yes
250
+ </code></pre>
251
+
252
+ <p>Default values can be set at the beginning of the file so that these settings
253
+ don&#39;t have to be specified for each frame. For example, the roll of film has
254
+ one ISO speed for all of the frames, so this can be specified at the top instead
255
+ of for each individual frame.</p>
256
+
257
+ <p>Values like the date are a little different, because maybe the whole roll was
258
+ shot during the same day, or maybe it was shot over the course of several days.
259
+ This is where the <code>roll.yml</code> file provides flexibility. Specifying <code>date</code> at the
260
+ beginning of the file will make it the default date for all of the frames on the
261
+ roll. If not all of the frames were shot on the same day, <code>date</code> can then be
262
+ specified for each of the frames that have a different date (<code>9</code> and <code>10</code> in
263
+ the example above). This concept works for most of the values.</p>
264
+
265
+ <blockquote>
266
+ <p>A complete list of keywords are available in the <a href="http://www.rubydoc.info/gems/halation">Halation API documentation</a>,
267
+ as well as in the <a href="https://github.com/amclain/halation/tree/master/spec/samples">sample files</a>.</p>
268
+ </blockquote>
269
+
270
+ <p>After all of the necessary values are entered into <code>roll.yml</code>, the images can
271
+ be processed by running the following command:</p>
272
+
273
+ <pre class="code text"><code class="text"> halation
274
+ </code></pre>
65
275
  </div></div>
66
276
 
67
277
  <div id="footer">
68
- Generated on Wed May 4 22:46:35 2016 by
278
+ Generated on Sat May 28 22:28:56 2016 by
69
279
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
70
280
  0.8.7.6 (ruby-2.1.7).
71
281
  </div>
@@ -61,11 +61,221 @@
61
61
 
62
62
  <div id="content"><div id='filecontents'><h1>Halation</h1>
63
63
 
64
+ <p><a href="https://badge.fury.io/rb/halation"><img src="https://badge.fury.io/rb/halation.svg" alt="Gem Version"></a>
65
+ <a href="https://coveralls.io/github/amclain/halation?branch=master"><img src="https://coveralls.io/repos/github/amclain/halation/badge.svg?branch=master" alt="Coverage Status"></a>
66
+ <a href="http://www.rubydoc.info/gems/halation"><img src="https://img.shields.io/badge/docs-api-blue.svg" alt="API Documentation"></a>
67
+ <a href="https://github.com/amclain/halation/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-yellowgreen.svg" alt="MIT License"></a></p>
68
+
64
69
  <p>Add Exif metadata to film photographs.</p>
70
+
71
+ <h2>Issues, Bugs, Feature Requests</h2>
72
+
73
+ <p>Any bugs and feature requests should be reported on the GitHub issue tracker:</p>
74
+
75
+ <p><a href="https://github.com/amclain/halation/issues">https://github.com/amclain/halation/issues</a></p>
76
+
77
+ <p><strong>Pull requests are preferred via GitHub.</strong></p>
78
+
79
+ <p>Mercurial users can use <a href="http://hg-git.github.io/">Hg-Git</a> to interact with
80
+ GitHub repositories.</p>
81
+
82
+ <h2>Installation</h2>
83
+
84
+ <p>Halation is available as a Ruby gem.</p>
85
+
86
+ <ol>
87
+ <li><p>Install <a href="https://www.ruby-lang.org">Ruby</a> 2.1 or higher.</p>
88
+
89
+ <ul>
90
+ <li>Windows: Use <a href="http://rubyinstaller.org/downloads/">RubyInstaller</a>.</li>
91
+ <li>Mac: Use <a href="https://www.ruby-lang.org/en/documentation/installation/#homebrew">homebrew</a>.</li>
92
+ <li>Linux: Use <a href="https://github.com/sstephenson/rbenv#basic-github-checkout">rbenv</a>.</li>
93
+ <li><a href="https://www.ruby-lang.org/en/documentation/installation">Additional installation instructions</a></li>
94
+ </ul></li>
95
+ <li><p>Install <a href="http://www.sno.phy.queensu.ca/%7Ephil/exiftool/">ExifTool</a>.</p></li>
96
+ <li><p>Open the <a href="http://www.addictivetips.com/windows-tips/windows-7-elevated-command-prompt-in-context-menu/">command line</a>
97
+ and type:</p></li>
98
+ </ol>
99
+
100
+ <pre class="code text"><code class="text"> gem install halation
101
+ </code></pre>
102
+
103
+ <h2>Configuration</h2>
104
+
105
+ <p>Halation stores its global configuration data in <code>.halation</code> in the system&#39;s
106
+ user directory. This is typically <code>~/.halation</code> on Mac and *nix-based systems,
107
+ or <code>C:\Users\.halation</code> on Windows.</p>
108
+
109
+ <blockquote>
110
+ <p>Halation uses the <a href="http://www.yaml.org/spec/1.2/spec.html#Preview">YAML syntax</a>
111
+ for its configuration files.</p>
112
+ </blockquote>
113
+
114
+ <p>By default Halation uses a global configuration file, <code>~/.halation/config.yml</code>.
115
+ This is where your generic settings are stored, like your name, copyright info,
116
+ and information about your cameras.</p>
117
+
118
+ <pre class="code yaml"><code class="yaml"># Example config.yml
119
+ ---
120
+ artist: &quot;Example User&quot;
121
+ copyright: &quot;2016 Example User&quot;
122
+ cameras:
123
+ - tag: &quot;rz67&quot;
124
+ make: &quot;Mamiya&quot;
125
+ model: &quot;Mamiya RZ67 Pro II&quot;
126
+ lenses:
127
+ - tag: 65
128
+ model: &quot;M65mm f/4L-A&quot;
129
+ focal_length: 65
130
+ - tag: 110
131
+ model: &quot;Z110mm f/2.8W&quot;
132
+ focal_length: 110
133
+ - tag: 180
134
+ model: &quot;Z180mm f/4.5W-N&quot;
135
+ focal_length: 180
136
+ - tag: 250
137
+ model: &quot;M65mm f/4L-A&quot;
138
+ focal_length: 250
139
+ </code></pre>
140
+
141
+ <h2>Tags</h2>
142
+
143
+ <p>Tags are user-defined values that serve as a quick and simple way to reference
144
+ complex information.</p>
145
+
146
+ <p>Why is this important? Let&#39;s say you shot a roll of ten images with several
147
+ different lenses. It would be cumbersome to have to specify a model number
148
+ like <code>Z110mm f/2.8W</code> (and all the other lens information) on each of the frames.
149
+ Even more importantly, if you&#39;re processing batches of images over a long period
150
+ of time (months, years), you&#39;re bound to make mistakes in the spelling of the
151
+ model number. This is important because any software that catalogs images based
152
+ on Exif data (Lightroom, Flickr) doesn&#39;t know how to deal with these
153
+ inconsistencies. This means <code>Z110mm f/2.8W</code> and <code>Z110mm f/2.8 W</code> will be
154
+ considered two different lenses by the software (did you see the difference?),
155
+ even though we as humans understand they&#39;re the same thing. If you try to filter
156
+ by lens in Lightroom, some of the images will be under one spelling and some
157
+ will be under the other, even though they were both shot with the same
158
+ 110mm lens.</p>
159
+
160
+ <p>Tags solve this problem by letting us define all of the complex,
161
+ infrequently-changing data in one place. We can then reference that complex
162
+ data by its <code>tag</code>. For example, if we have a 65mm lens and a 110mm lens we can
163
+ define their information once and tag them as <code>65</code> and <code>110</code> respectively (we
164
+ choose the tag names).</p>
165
+
166
+ <pre class="code yaml"><code class="yaml">lenses:
167
+ - tag: 65
168
+ model: &quot;M65mm f/4L-A&quot;
169
+ focal_length: 65
170
+ - tag: 110
171
+ model: &quot;Z110mm f/2.8W&quot;
172
+ focal_length: 110
173
+ </code></pre>
174
+
175
+ <p>Now when we want to reference which lens was used when capturing a particular
176
+ frame, all we have to do is specify the tag and Halation will fill in the
177
+ correct Exif data for that lens when the image file is processed.</p>
178
+
179
+ <pre class="code yaml"><code class="yaml">frames:
180
+ - number: 1
181
+ lens: 110
182
+ - number: 2
183
+ lens: 65
184
+ - number: 3
185
+ lens: 110
186
+ </code></pre>
187
+
188
+ <h2>Processing A Roll</h2>
189
+
190
+ <p>Halation requires all of the image files for a roll of film to be in the same
191
+ directory. The images should be named in ascending alphabetical order, with the
192
+ first frame of the roll at the start of the list and the last frame at the end.
193
+ This is typically the default when scanners save files. Halation will scan for
194
+ tiff files (<code>.tif</code>, <code>.tiff</code>), which is the ideal format, as well as jpeg files
195
+ (<code>.jpg</code>, <code>.jpeg</code>).</p>
196
+
197
+ <p>This directory should also contain a <code>roll.yml</code> file, which specifies the data
198
+ for each frame (image file) on the roll of film. A new <code>roll.yml</code> file can be
199
+ generated in the current directory with the following command:</p>
200
+
201
+ <pre class="code text"><code class="text"> halation --new-roll
202
+ </code></pre>
203
+
204
+ <p>The data for the roll can then be entered into the file:</p>
205
+
206
+ <pre class="code yaml"><code class="yaml"># Example roll.yml
207
+ ---
208
+ date: &quot;2016-01-01&quot;
209
+ camera: &quot;rz67&quot;
210
+ lens: 110
211
+ iso: 100
212
+ frames:
213
+ - number: 1
214
+ shutter: &quot;1/125&quot;
215
+ aperture: 8
216
+ - number: 2
217
+ shutter: &quot;2&quot;
218
+ lens: 65
219
+ aperture: 16
220
+ - number: 3
221
+ lens: 65
222
+ shutter: &quot;0.5&quot;
223
+ aperture: 16
224
+ - number: 4
225
+ lens: 65
226
+ shutter: &quot;0.5&quot;
227
+ aperture: 16
228
+ - number: 5
229
+ shutter: &quot;1/250&quot;
230
+ aperture: 4
231
+ - number: 6
232
+ shutter: &quot;1/125&quot;
233
+ aperture: 8
234
+ - number: 7
235
+ shutter: &quot;1/125&quot;
236
+ aperture: 8
237
+ - number: 8
238
+ shutter: &quot;1/60&quot;
239
+ aperture: 22
240
+ - number: 9
241
+ date: &quot;2016-01-02&quot;
242
+ shutter: &quot;1/400&quot;
243
+ aperture: 8
244
+ flash: yes
245
+ - number: 10
246
+ date: &quot;2016-01-02&quot;
247
+ shutter: &quot;1/400&quot;
248
+ aperture: 8
249
+ flash: yes
250
+ </code></pre>
251
+
252
+ <p>Default values can be set at the beginning of the file so that these settings
253
+ don&#39;t have to be specified for each frame. For example, the roll of film has
254
+ one ISO speed for all of the frames, so this can be specified at the top instead
255
+ of for each individual frame.</p>
256
+
257
+ <p>Values like the date are a little different, because maybe the whole roll was
258
+ shot during the same day, or maybe it was shot over the course of several days.
259
+ This is where the <code>roll.yml</code> file provides flexibility. Specifying <code>date</code> at the
260
+ beginning of the file will make it the default date for all of the frames on the
261
+ roll. If not all of the frames were shot on the same day, <code>date</code> can then be
262
+ specified for each of the frames that have a different date (<code>9</code> and <code>10</code> in
263
+ the example above). This concept works for most of the values.</p>
264
+
265
+ <blockquote>
266
+ <p>A complete list of keywords are available in the <a href="http://www.rubydoc.info/gems/halation">Halation API documentation</a>,
267
+ as well as in the <a href="https://github.com/amclain/halation/tree/master/spec/samples">sample files</a>.</p>
268
+ </blockquote>
269
+
270
+ <p>After all of the necessary values are entered into <code>roll.yml</code>, the images can
271
+ be processed by running the following command:</p>
272
+
273
+ <pre class="code text"><code class="text"> halation
274
+ </code></pre>
65
275
  </div></div>
66
276
 
67
277
  <div id="footer">
68
- Generated on Wed May 4 22:46:35 2016 by
278
+ Generated on Sat May 28 22:28:56 2016 by
69
279
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
70
280
  0.8.7.6 (ruby-2.1.7).
71
281
  </div>