halation 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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>