tdiary-contrib 3.2.2.20130518 → 3.2.2.20130614
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.
- checksums.yaml +4 -4
- data/.travis.yml +1 -3
- data/doc/ja/plugin/image_gps.txt +56 -17
- data/doc/ja/plugin/playstore.txt +31 -0
- data/js/socialbutton.js +8 -2
- data/lib/exifparser/README +6 -12
- data/lib/tdiary-contrib.rb +7 -6
- data/plugin/brow_si.rb +32 -0
- data/plugin/image_gps.rb +110 -56
- data/plugin/instagr.rb +1 -0
- data/plugin/playstore.rb +161 -0
- data/plugin/tweet_quote.rb +102 -48
- data/plugin/twitter_badge.rb +1 -1
- data/util/estraier-search/estraier-register.rb +2 -1
- data/util/estraier-search/estraier-search.rb +2 -1
- data/util/image-gallery/misc/plugin/recent_image.rb +1 -1
- metadata +7 -27
- data/doc/ja/plugin/image_detail.txt +0 -69
- data/doc/ja/plugin/image_gps2.txt +0 -41
- data/lib/exifparser/BUGS +0 -1
- data/lib/exifparser/ChangeLog +0 -169
- data/lib/exifparser/install.rb +0 -1015
- data/lib/exifparser/lib/exifparser/makernote/canon.rb +0 -502
- data/lib/exifparser/lib/exifparser/makernote/fujifilm.rb +0 -415
- data/lib/exifparser/lib/exifparser/makernote/minolta.rb +0 -84
- data/lib/exifparser/lib/exifparser/makernote/mk_nikonflensname.rb +0 -39
- data/lib/exifparser/lib/exifparser/makernote/nikon.rb +0 -267
- data/lib/exifparser/lib/exifparser/makernote/nikon2.rb +0 -581
- data/lib/exifparser/lib/exifparser/makernote/nikonflensname.rb +0 -438
- data/lib/exifparser/lib/exifparser/makernote/olympus.rb +0 -225
- data/lib/exifparser/lib/exifparser/makernote/prove.rb +0 -84
- data/lib/exifparser/lib/exifparser/makernote/sigma.rb +0 -237
- data/lib/exifparser/lib/exifparser/pre-setup.rb +0 -1
- data/lib/exifparser/lib/exifparser/scan.rb +0 -278
- data/lib/exifparser/lib/exifparser/tag.rb +0 -2298
- data/lib/exifparser/lib/exifparser/thumbnail.rb +0 -76
- data/lib/exifparser/lib/exifparser/utils.rb +0 -88
- data/lib/exifparser/lib/exifparser.rb +0 -265
- data/lib/exifparser/sample/exifview.rb +0 -279
- data/plugin/image_detail.rb +0 -143
@@ -1,502 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# exifparser/makernote/nikon.rb -
|
3
|
-
#
|
4
|
-
# Copyright (C) 2002 Ryuichi Tamura (r-tam@fsinet.or.jp)
|
5
|
-
#
|
6
|
-
# $Revision: 1.1.1.1 $
|
7
|
-
# $Date: 2002/12/16 07:59:00 $
|
8
|
-
#
|
9
|
-
require 'exifparser/tag'
|
10
|
-
require 'exifparser/utils'
|
11
|
-
|
12
|
-
module Exif
|
13
|
-
|
14
|
-
module Tag
|
15
|
-
|
16
|
-
module MakerNote
|
17
|
-
|
18
|
-
#
|
19
|
-
# 0x0000 - Unknown
|
20
|
-
#
|
21
|
-
|
22
|
-
#
|
23
|
-
# 0x0001 - Tag0x0001
|
24
|
-
#
|
25
|
-
class Tag0x0001 < Base
|
26
|
-
|
27
|
-
def processData
|
28
|
-
@formatted = []
|
29
|
-
partition_data(@count) do |part|
|
30
|
-
@formatted.push _formatData(part)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def value
|
35
|
-
numTags = @formatted[0] / 2
|
36
|
-
ret = {}
|
37
|
-
|
38
|
-
return ret if numTags < 2
|
39
|
-
#
|
40
|
-
# offset 1 : Macro mode
|
41
|
-
#
|
42
|
-
ret["Macro mode"] =
|
43
|
-
case @formatted[1]
|
44
|
-
when 1
|
45
|
-
"Macro"
|
46
|
-
when 2
|
47
|
-
"Normal"
|
48
|
-
else
|
49
|
-
"Unknown"
|
50
|
-
end
|
51
|
-
|
52
|
-
return ret if numTags < 3
|
53
|
-
#
|
54
|
-
# offset 2 : if nonzero, length of self-timer in 10ths of a second.
|
55
|
-
#
|
56
|
-
selftimer_length = @formatted[2]
|
57
|
-
|
58
|
-
return ret if numTags < 5
|
59
|
-
#
|
60
|
-
# offset 4 : Flash mode
|
61
|
-
#
|
62
|
-
ret["Flash mode"] =
|
63
|
-
case @formatted[4]
|
64
|
-
when 0
|
65
|
-
"flash not fired"
|
66
|
-
when 1
|
67
|
-
"auto"
|
68
|
-
when 2
|
69
|
-
"on"
|
70
|
-
when 3
|
71
|
-
"red-eye reduction"
|
72
|
-
when 4
|
73
|
-
"slow synchro"
|
74
|
-
when 5
|
75
|
-
"auto + redeye reduction"
|
76
|
-
when 6
|
77
|
-
"on + redeye reduction"
|
78
|
-
when 16
|
79
|
-
"external flash"
|
80
|
-
else
|
81
|
-
"unknown"
|
82
|
-
end
|
83
|
-
|
84
|
-
return ret if numTags < 6
|
85
|
-
#
|
86
|
-
# offset 5: Contiuous drive mode
|
87
|
-
#
|
88
|
-
ret["Continuous drive mode"] =
|
89
|
-
case @formatted[5]
|
90
|
-
when 0
|
91
|
-
if selftimer_length != 0
|
92
|
-
"Timer = #{selftimer_length/10.0}sec."
|
93
|
-
else
|
94
|
-
"Single"
|
95
|
-
end
|
96
|
-
when 1
|
97
|
-
"Continuous"
|
98
|
-
end
|
99
|
-
|
100
|
-
return ret if numTags < 8
|
101
|
-
#
|
102
|
-
# offset 7: Focus Mode
|
103
|
-
#
|
104
|
-
ret["Focus Mode"] =
|
105
|
-
case @formatted[7]
|
106
|
-
when 0
|
107
|
-
"One-Shot"
|
108
|
-
when 1
|
109
|
-
"AI Servo"
|
110
|
-
when 2
|
111
|
-
"AI Focus"
|
112
|
-
when 3
|
113
|
-
"MF"
|
114
|
-
when 4
|
115
|
-
"Single"
|
116
|
-
when 5
|
117
|
-
"Continuous"
|
118
|
-
when 6
|
119
|
-
"MF"
|
120
|
-
else
|
121
|
-
"Unknown"
|
122
|
-
end
|
123
|
-
|
124
|
-
return ret if numTags < 11
|
125
|
-
#
|
126
|
-
# offset 10: Image size
|
127
|
-
#
|
128
|
-
ret["Image Size"] =
|
129
|
-
case @formatted[10]
|
130
|
-
when 0
|
131
|
-
"Large"
|
132
|
-
when 1
|
133
|
-
"Medium"
|
134
|
-
when
|
135
|
-
"Small"
|
136
|
-
else
|
137
|
-
"Unknown"
|
138
|
-
end
|
139
|
-
|
140
|
-
return ret if numTags < 12
|
141
|
-
#
|
142
|
-
# offset 11: "Easy shooting" mode
|
143
|
-
#
|
144
|
-
ret["Easy shooting mode"] =
|
145
|
-
case @formatted[11]
|
146
|
-
when 0
|
147
|
-
"Full auto"
|
148
|
-
when 1
|
149
|
-
"Manual"
|
150
|
-
when 2
|
151
|
-
"Landscape"
|
152
|
-
when 3
|
153
|
-
"Fast Shutter"
|
154
|
-
when 4
|
155
|
-
"Slow Shutter"
|
156
|
-
when 5
|
157
|
-
"Night"
|
158
|
-
when 6
|
159
|
-
"B&W"
|
160
|
-
when 7
|
161
|
-
"Sepia"
|
162
|
-
when 8
|
163
|
-
"Portrait"
|
164
|
-
when 9
|
165
|
-
"Sports"
|
166
|
-
when 10
|
167
|
-
"Macro / Close-Up"
|
168
|
-
when 11
|
169
|
-
"Pan Focus"
|
170
|
-
else
|
171
|
-
"Unknown"
|
172
|
-
end
|
173
|
-
|
174
|
-
return ret if numTags < 14
|
175
|
-
#
|
176
|
-
# offset 13: Contrast
|
177
|
-
#
|
178
|
-
ret["Contrast"] =
|
179
|
-
case @formatted[13]
|
180
|
-
when 0xffff
|
181
|
-
"Low"
|
182
|
-
when 0x0000
|
183
|
-
"Normal"
|
184
|
-
when 0x0001
|
185
|
-
"High"
|
186
|
-
else
|
187
|
-
"Unknown"
|
188
|
-
end
|
189
|
-
|
190
|
-
return ret if numTags < 15
|
191
|
-
#
|
192
|
-
# offset 14: Saturation
|
193
|
-
#
|
194
|
-
ret["Saturation"] =
|
195
|
-
case @formatted[14]
|
196
|
-
when 0xffff
|
197
|
-
"Low"
|
198
|
-
when 0x0000
|
199
|
-
"Normal"
|
200
|
-
when 0x0001
|
201
|
-
"High"
|
202
|
-
else
|
203
|
-
"Unknown"
|
204
|
-
end
|
205
|
-
|
206
|
-
return ret if numTags < 16
|
207
|
-
#
|
208
|
-
# offset 15: Contrast
|
209
|
-
#
|
210
|
-
ret["Sharpness"] =
|
211
|
-
case @formatted[15]
|
212
|
-
when 0xffff
|
213
|
-
"Low"
|
214
|
-
when 0x0000
|
215
|
-
"Normal"
|
216
|
-
when 0x0001
|
217
|
-
"High"
|
218
|
-
else
|
219
|
-
"Unknown"
|
220
|
-
end
|
221
|
-
|
222
|
-
return ret if numTags < 17
|
223
|
-
#
|
224
|
-
# offset 16: ISO
|
225
|
-
#
|
226
|
-
ret["ISO"] =
|
227
|
-
case @formatted[16]
|
228
|
-
when 0
|
229
|
-
"ISOSpeedRatings"
|
230
|
-
when 15
|
231
|
-
"Auto"
|
232
|
-
when 16
|
233
|
-
50
|
234
|
-
when 17
|
235
|
-
100
|
236
|
-
when 18
|
237
|
-
200
|
238
|
-
when 19
|
239
|
-
400
|
240
|
-
else
|
241
|
-
"Unknown"
|
242
|
-
end
|
243
|
-
|
244
|
-
return ret if numTags < 18
|
245
|
-
#
|
246
|
-
# offset 17: Metering mode
|
247
|
-
#
|
248
|
-
ret['Metering mode'] =
|
249
|
-
case @formatted[17]
|
250
|
-
when 3
|
251
|
-
"Evaluative"
|
252
|
-
when 4
|
253
|
-
"Partial"
|
254
|
-
when 5
|
255
|
-
"Center-weighted"
|
256
|
-
else
|
257
|
-
"Unknown"
|
258
|
-
end
|
259
|
-
ret
|
260
|
-
end
|
261
|
-
|
262
|
-
end
|
263
|
-
|
264
|
-
#
|
265
|
-
# 0x0003 - Tag0x0003
|
266
|
-
#
|
267
|
-
class Tag0x0003 < Base
|
268
|
-
end
|
269
|
-
|
270
|
-
#
|
271
|
-
# 0x0004 - Tag0x0004
|
272
|
-
#
|
273
|
-
class Tag0x0004 < Base
|
274
|
-
|
275
|
-
def processData
|
276
|
-
@formatted = []
|
277
|
-
partition_data(@count) do |part|
|
278
|
-
@formatted.push _formatData(part)
|
279
|
-
end
|
280
|
-
end
|
281
|
-
|
282
|
-
def value
|
283
|
-
numTags = @formatted[0] / 2
|
284
|
-
ret = {}
|
285
|
-
|
286
|
-
return hash if numTags < 8
|
287
|
-
# offset 7 : white balance
|
288
|
-
ret['White balance'] =
|
289
|
-
case @formatted[7]
|
290
|
-
when 0
|
291
|
-
"Auto"
|
292
|
-
when 1
|
293
|
-
"Sunny"
|
294
|
-
when 2
|
295
|
-
"Cloudy"
|
296
|
-
when 3
|
297
|
-
"Tungsten"
|
298
|
-
when 4
|
299
|
-
"Florescent"
|
300
|
-
when 5
|
301
|
-
"Flash"
|
302
|
-
when 6
|
303
|
-
"Custom"
|
304
|
-
else
|
305
|
-
"Unknown"
|
306
|
-
end
|
307
|
-
|
308
|
-
return ret if numTags < 10
|
309
|
-
# offset 9: Sequence number (if in a continuous burst)
|
310
|
-
ret['Sequence number'] = @formatted[9]
|
311
|
-
|
312
|
-
return ret if numTags < 15
|
313
|
-
# offset 14: Auto Focus point used
|
314
|
-
ret['Auto Focus point used'] = @formatted[14]
|
315
|
-
|
316
|
-
return ret if numTags < 16
|
317
|
-
ret['Flash bias'] =
|
318
|
-
case @formatted[15]
|
319
|
-
when 0xffc0
|
320
|
-
"-2 EV"
|
321
|
-
when 0xffcc
|
322
|
-
"-1.67 EV"
|
323
|
-
when 0xffd0
|
324
|
-
"-1.50 EV"
|
325
|
-
when 0xffd4
|
326
|
-
"-1.33 EV"
|
327
|
-
when 0xffe0
|
328
|
-
"-1 EV"
|
329
|
-
when 0xffec
|
330
|
-
"-0.67 EV"
|
331
|
-
when 0xfff0
|
332
|
-
"-0.50 EV"
|
333
|
-
when 0xfff4
|
334
|
-
"-0.33 EV"
|
335
|
-
when 0x0000
|
336
|
-
"0 EV"
|
337
|
-
when 0x000c
|
338
|
-
"0.33 EV"
|
339
|
-
when 0x0010
|
340
|
-
"0.50 EV"
|
341
|
-
when 0x0014
|
342
|
-
"0.67 EV"
|
343
|
-
when 0x0020
|
344
|
-
"1 EV"
|
345
|
-
when 0x002c
|
346
|
-
"1.33 EV"
|
347
|
-
when 0x0030
|
348
|
-
"1.50 EV"
|
349
|
-
when 0x0034
|
350
|
-
"1.67 EV"
|
351
|
-
when 0x0040
|
352
|
-
"2 EV"
|
353
|
-
else
|
354
|
-
"Unknown"
|
355
|
-
end
|
356
|
-
|
357
|
-
return ret if numTags < 20
|
358
|
-
ret['Subject Distance'] = @formatted[19]
|
359
|
-
|
360
|
-
ret
|
361
|
-
end
|
362
|
-
|
363
|
-
end
|
364
|
-
|
365
|
-
#
|
366
|
-
# 0x0006 - ImageType
|
367
|
-
#
|
368
|
-
class ImageType < Base
|
369
|
-
end
|
370
|
-
|
371
|
-
#
|
372
|
-
# 0x0007 - FirmwareVersion
|
373
|
-
#
|
374
|
-
class FirmwareVersion < Base
|
375
|
-
end
|
376
|
-
|
377
|
-
#
|
378
|
-
# 0x0008 - ImageNumber
|
379
|
-
#
|
380
|
-
class ImageNumber < Base
|
381
|
-
end
|
382
|
-
|
383
|
-
#
|
384
|
-
# 0x0009 - OwnerName
|
385
|
-
#
|
386
|
-
class OwnerName < Base
|
387
|
-
end
|
388
|
-
|
389
|
-
#
|
390
|
-
# 0x000a - Unknown
|
391
|
-
#
|
392
|
-
|
393
|
-
#
|
394
|
-
# 0x000c - CameraSerialNumber
|
395
|
-
#
|
396
|
-
class CameraSerialNumber < Base
|
397
|
-
|
398
|
-
def to_s
|
399
|
-
hi = @formatted / 0x10000
|
400
|
-
low = @formatted % 0x10000
|
401
|
-
"%04X%05d"%[hi, low]
|
402
|
-
end
|
403
|
-
|
404
|
-
end
|
405
|
-
|
406
|
-
#
|
407
|
-
# 0x000d - Unknown
|
408
|
-
#
|
409
|
-
|
410
|
-
#
|
411
|
-
# 0x000f - CustomFunctions
|
412
|
-
#
|
413
|
-
class CustomFunctions < Base
|
414
|
-
|
415
|
-
def processData
|
416
|
-
@formatted = []
|
417
|
-
partition_data(@count) do |part|
|
418
|
-
@formatted.push _formatData(part)
|
419
|
-
end
|
420
|
-
end
|
421
|
-
|
422
|
-
end
|
423
|
-
|
424
|
-
end
|
425
|
-
|
426
|
-
CanonIFDTable = {
|
427
|
-
0x0000 => Unknown,
|
428
|
-
0x0001 => MakerNote::Tag0x0001,
|
429
|
-
0x0003 => MakerNote::Tag0x0003,
|
430
|
-
0x0004 => MakerNote::Tag0x0004,
|
431
|
-
0x0006 => MakerNote::ImageType,
|
432
|
-
0x0007 => MakerNote::FirmwareVersion,
|
433
|
-
0x0008 => MakerNote::ImageNumber,
|
434
|
-
0x0009 => MakerNote::OwnerName,
|
435
|
-
0x000a => Unknown,
|
436
|
-
0x000c => MakerNote::CameraSerialNumber,
|
437
|
-
0x000d => Unknown,
|
438
|
-
0x000f => MakerNote::CustomFunctions
|
439
|
-
}
|
440
|
-
|
441
|
-
end
|
442
|
-
|
443
|
-
class Canon
|
444
|
-
|
445
|
-
def initialize(fin, tiff_origin, dataPos, byteOrder_module)
|
446
|
-
@fin = fin
|
447
|
-
@tiffHeader0 = tiff_origin
|
448
|
-
@dataPos = dataPos
|
449
|
-
@byteOrder_module = byteOrder_module
|
450
|
-
self.extend @byteOrder_module
|
451
|
-
end
|
452
|
-
|
453
|
-
def scan_IFD
|
454
|
-
#
|
455
|
-
# Canon MakerNote starts from 0
|
456
|
-
#
|
457
|
-
@fin.pos = @dataPos + 0
|
458
|
-
#
|
459
|
-
# get the number of tags
|
460
|
-
#
|
461
|
-
numDirs = decode_ushort(fin_read_n(2))
|
462
|
-
#
|
463
|
-
# now scan them
|
464
|
-
#
|
465
|
-
1.upto(numDirs) {
|
466
|
-
curpos_tag = @fin.pos
|
467
|
-
tag = parseTagID(fin_read_n(2))
|
468
|
-
tagclass = Tag.find(tag.hex, Tag::CanonIFDTable)
|
469
|
-
unit, formatter = Tag::Format::Unit[decode_ushort(fin_read_n(2))]
|
470
|
-
count = decode_ulong(fin_read_n(4))
|
471
|
-
tagdata = fin_read_n(4)
|
472
|
-
obj = tagclass.new(tag, "MakerNote", count)
|
473
|
-
obj.extend formatter, @byteOrder_module
|
474
|
-
obj.pos = curpos_tag
|
475
|
-
if unit * count > 4
|
476
|
-
curpos = @fin.pos
|
477
|
-
begin
|
478
|
-
@fin.pos = @tiffHeader0 + decode_ulong(tagdata)
|
479
|
-
obj.dataPos = @fin.pos
|
480
|
-
obj.data = fin_read_n(unit*count)
|
481
|
-
ensure
|
482
|
-
@fin.pos = curpos
|
483
|
-
end
|
484
|
-
else
|
485
|
-
obj.dataPos = @fin.pos - 4
|
486
|
-
obj.data = tagdata
|
487
|
-
end
|
488
|
-
obj.processData
|
489
|
-
yield obj
|
490
|
-
}
|
491
|
-
end
|
492
|
-
|
493
|
-
private
|
494
|
-
|
495
|
-
def fin_read_n(n)
|
496
|
-
@fin.read(n)
|
497
|
-
end
|
498
|
-
|
499
|
-
end
|
500
|
-
|
501
|
-
|
502
|
-
end
|