gf-ralbum 0.0.2

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.
Files changed (187) hide show
  1. data/LICENSE +20 -0
  2. data/README.rdoc +80 -0
  3. data/bin/ralbum-JPG2jpg.rb +90 -0
  4. data/bin/ralbum-compile_skins.rb +18 -0
  5. data/bin/ralbum-myconv.rb +81 -0
  6. data/bin/ralbum-readexif.rb +18 -0
  7. data/bin/ralbum-reorder.rb +200 -0
  8. data/bin/ralbum.rb +12 -0
  9. data/example/README.txt +8 -0
  10. data/example/example.sh +3 -0
  11. data/example/httpd.rb +35 -0
  12. data/example/test_phototree/album.xml +21 -0
  13. data/example/test_phototree/catalog_data/md5_to_key.yaml +4 -0
  14. data/example/test_phototree/catalog_data/md5_to_key.yaml.test +4 -0
  15. data/example/test_phototree/catalog_data/project.xml +329 -0
  16. data/example/test_phototree/r_photo01.jpg +0 -0
  17. data/example/test_phototree/r_photo01.jpg.xml +17 -0
  18. data/example/test_phototree/subalbum01/album.xml +21 -0
  19. data/example/test_phototree/subalbum01/subalbum01_photo01.jpg +0 -0
  20. data/example/test_phototree/subalbum01/subalbum01_photo01.jpg.xml +15 -0
  21. data/example/test_phototree/subalbum01/subalbum01_photo02.jpg +0 -0
  22. data/example/test_phototree/subalbum01/subalbum01_photo02.jpg.xml +15 -0
  23. data/example/test_phototree/subalbum01/subalbum01_photo03.jpg +0 -0
  24. data/example/test_phototree/subalbum01/subalbum01_photo03.jpg.xml +15 -0
  25. data/example/test_phototree/subalbum01/subalbum01_photo04.jpg +0 -0
  26. data/example/test_phototree/subalbum01/subalbum01_photo04.jpg.xml +15 -0
  27. data/example/test_phototree/subalbum02/album.xml +10 -0
  28. data/example/test_phototree/subalbum02/subalbum02_photo01.jpg +0 -0
  29. data/example/test_phototree/subalbum02/subalbum02_photo01.jpg.xml +15 -0
  30. data/example/test_phototree/subalbum02/subalbum02_photo02.jpg +0 -0
  31. data/example/test_phototree/subalbum02/subalbum02_photo02.jpg.xml +15 -0
  32. data/example/test_phototree/subalbum02/subalbum02_photo03.jpg +0 -0
  33. data/example/test_phototree/subalbum02/subalbum02_photo03.jpg.xml +15 -0
  34. data/example/test_phototree/subalbum02/subalbum02_photo04.jpg +0 -0
  35. data/example/test_phototree/subalbum02/subalbum02_photo04.jpg.xml +15 -0
  36. data/example/test_phototree/subalbum02/subalbum02_photo05.jpg +0 -0
  37. data/example/test_phototree/subalbum02/subalbum02_photo05.jpg.xml +15 -0
  38. data/lib/ralbum-common/object_with_properties.rb +14 -0
  39. data/lib/ralbum-common/object_with_validation.rb +50 -0
  40. data/lib/ralbum.rb +19 -0
  41. data/lib/ralbum/album.rb +66 -0
  42. data/lib/ralbum/catalog.rb +178 -0
  43. data/lib/ralbum/cli/cli_ralbum.rb +116 -0
  44. data/lib/ralbum/generate_album_tree_node_visitor.rb +60 -0
  45. data/lib/ralbum/image_file.rb +81 -0
  46. data/lib/ralbum/image_pool.rb +71 -0
  47. data/lib/ralbum/image_strategy.rb +143 -0
  48. data/lib/ralbum/options.rb +15 -0
  49. data/lib/ralbum/photo_tree_builder.rb +165 -0
  50. data/lib/ralbum/photo_tree_item.rb +89 -0
  51. data/lib/ralbum/photo_tree_node.rb +40 -0
  52. data/lib/ralbum/project.rb +89 -0
  53. data/lib/ralbum/ralbum_exception.rb +2 -0
  54. data/lib/ralbum/resource.rb +17 -0
  55. data/lib/ralbum/skin.rb +76 -0
  56. data/lib/ralbum/skin_engine.rb +98 -0
  57. data/lib/ralbum/skin_engines/erb_skin_engine.rb +35 -0
  58. data/lib/ralbum/skin_engines/kwartz_skin_engine.rb +54 -0
  59. data/lib/ralbum/skin_manager.rb +46 -0
  60. data/lib/ralbum/skins/cgi/cgi_skin.rb +27 -0
  61. data/lib/ralbum/skins/cgi/info.yml +3 -0
  62. data/lib/ralbum/skins/cgi/res/model.rb +235 -0
  63. data/lib/ralbum/skins/cgi/res/resource.rb +17 -0
  64. data/lib/ralbum/skins/gfold/inc/menu_bottom.html +53 -0
  65. data/lib/ralbum/skins/gfold/inc/menu_top.html +71 -0
  66. data/lib/ralbum/skins/gfold/inc/page_footer.html +28 -0
  67. data/lib/ralbum/skins/gfold/info.yml +3 -0
  68. data/lib/ralbum/skins/gfold/out/album_page.rb +316 -0
  69. data/lib/ralbum/skins/gfold/out/image_page.rb +231 -0
  70. data/lib/ralbum/skins/gfold/out/tree_page.rb +96 -0
  71. data/lib/ralbum/skins/gfold/res/16-arrow-down.png +0 -0
  72. data/lib/ralbum/skins/gfold/res/16-arrow-left.png +0 -0
  73. data/lib/ralbum/skins/gfold/res/16-arrow-right.png +0 -0
  74. data/lib/ralbum/skins/gfold/res/16-arrow-up.png +0 -0
  75. data/lib/ralbum/skins/gfold/res/left.gif +0 -0
  76. data/lib/ralbum/skins/gfold/res/prototype.js +3277 -0
  77. data/lib/ralbum/skins/gfold/res/right.gif +0 -0
  78. data/lib/ralbum/skins/gfold/res/style1.css +453 -0
  79. data/lib/ralbum/skins/gfold/res/style2.css +414 -0
  80. data/lib/ralbum/skins/gfold/res/styleswitcher.js +89 -0
  81. data/lib/ralbum/skins/gfold/res/top.gif +0 -0
  82. data/lib/ralbum/skins/gfold/res/up.gif +0 -0
  83. data/lib/ralbum/skins/gfold/res/valid-css.png +0 -0
  84. data/lib/ralbum/skins/gfold/res/valid-xhtml.png +0 -0
  85. data/lib/ralbum/skins/gfold/res/valid-xhtml11.png +0 -0
  86. data/lib/ralbum/skins/gfold/res/vcss.gif +0 -0
  87. data/lib/ralbum/skins/gfold/template/album_page.html +161 -0
  88. data/lib/ralbum/skins/gfold/template/album_page.plogic +127 -0
  89. data/lib/ralbum/skins/gfold/template/image_page.html +91 -0
  90. data/lib/ralbum/skins/gfold/template/image_page.plogic +70 -0
  91. data/lib/ralbum/skins/gfold/template/tree_page.html +79 -0
  92. data/lib/ralbum/skins/gfold/template/tree_page.plogic +45 -0
  93. data/lib/ralbum/skins/js/info.yml +3 -0
  94. data/lib/ralbum/skins/js/js_skin.rb +50 -0
  95. data/lib/ralbum/skins/js/out/album_page.rb +181 -0
  96. data/lib/ralbum/skins/js/out/slideshow_page.rb +187 -0
  97. data/lib/ralbum/skins/js/out/tree_page.rb +134 -0
  98. data/lib/ralbum/skins/js/res/left.gif +0 -0
  99. data/lib/ralbum/skins/js/res/right.gif +0 -0
  100. data/lib/ralbum/skins/js/res/style.css +76 -0
  101. data/lib/ralbum/skins/js/res/top.gif +0 -0
  102. data/lib/ralbum/skins/js/res/up.gif +0 -0
  103. data/lib/ralbum/skins/js/template/album_page.html +178 -0
  104. data/lib/ralbum/skins/js/template/album_page.plogic +88 -0
  105. data/lib/ralbum/skins/js/template/slideshow_page.html +169 -0
  106. data/lib/ralbum/skins/js/template/slideshow_page.plogic +1 -0
  107. data/lib/ralbum/skins/js/template/tree_page.html +118 -0
  108. data/lib/ralbum/skins/js/template/tree_page.plogic +43 -0
  109. data/lib/ralbum/skins/test_erb/info.yml +3 -0
  110. data/lib/ralbum/skins/test_erb/out/album_page.rb +54 -0
  111. data/lib/ralbum/skins/test_erb/out/image_page.rb +54 -0
  112. data/lib/ralbum/skins/test_kwartz/info.yml +3 -0
  113. data/lib/ralbum/skins/test_kwartz/out/album_page.rb +54 -0
  114. data/lib/ralbum/skins/test_kwartz/out/image_page.rb +54 -0
  115. data/lib/ralbum/skins/test_kwartz/template/album_page.html +37 -0
  116. data/lib/ralbum/skins/test_kwartz/template/image_page.html +37 -0
  117. data/test/ralbum/cli/test_cli_ralbum.rb +13 -0
  118. data/test/ralbum/tc_01_photo_tree.rb +37 -0
  119. data/test/ralbum/tc_02_photo_tree_builder.rb +20 -0
  120. data/test/ralbum/tc_03_album.rb +42 -0
  121. data/test/ralbum/tc_04_skin_manager.rb +30 -0
  122. data/test/ralbum/tc_05_kwartz_skin_engine.rb +50 -0
  123. data/test/ralbum/tc_06_image_strategy.rb +21 -0
  124. data/test/ralbum/tc_catalog.rb +31 -0
  125. data/test/ralbum/test_helper.rb +13 -0
  126. data/test/test_ralbum.rb +14 -0
  127. data/test_data/ralbum/test_data/albums_directory/gfold/album_1/img_0004.jpg.html +148 -0
  128. data/test_data/ralbum/test_data/albums_directory/gfold/album_1/img_0005.jpg.html +152 -0
  129. data/test_data/ralbum/test_data/albums_directory/gfold/album_1/img_0006.jpg.html +152 -0
  130. data/test_data/ralbum/test_data/albums_directory/gfold/album_1/img_0007.jpg.html +148 -0
  131. data/test_data/ralbum/test_data/albums_directory/gfold/album_1/index.html +195 -0
  132. data/test_data/ralbum/test_data/albums_directory/gfold/album_2/img_0008.jpg.html +148 -0
  133. data/test_data/ralbum/test_data/albums_directory/gfold/album_2/img_0009.jpg.html +152 -0
  134. data/test_data/ralbum/test_data/albums_directory/gfold/album_2/img_0010.jpg.html +152 -0
  135. data/test_data/ralbum/test_data/albums_directory/gfold/album_2/img_0011.jpg.html +152 -0
  136. data/test_data/ralbum/test_data/albums_directory/gfold/album_2/img_0012.jpg.html +148 -0
  137. data/test_data/ralbum/test_data/albums_directory/gfold/album_2/index.html +206 -0
  138. data/test_data/ralbum/test_data/albums_directory/gfold/img_0003.jpg.html +141 -0
  139. data/test_data/ralbum/test_data/albums_directory/gfold/index.html +208 -0
  140. data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0003.jpg +0 -0
  141. data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0004.jpg +0 -0
  142. data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0005.jpg +0 -0
  143. data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0006.jpg +0 -0
  144. data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0007.jpg +0 -0
  145. data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0008.jpg +0 -0
  146. data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0009.jpg +0 -0
  147. data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0010.jpg +0 -0
  148. data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0011.jpg +0 -0
  149. data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0012.jpg +0 -0
  150. data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0003.jpg +0 -0
  151. data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0004.jpg +0 -0
  152. data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0005.jpg +0 -0
  153. data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0006.jpg +0 -0
  154. data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0007.jpg +0 -0
  155. data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0008.jpg +0 -0
  156. data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0009.jpg +0 -0
  157. data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0010.jpg +0 -0
  158. data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0011.jpg +0 -0
  159. data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0012.jpg +0 -0
  160. data/test_data/ralbum/test_data/albums_directory/res/left.gif +0 -0
  161. data/test_data/ralbum/test_data/albums_directory/res/prototype.js +3277 -0
  162. data/test_data/ralbum/test_data/albums_directory/res/right.gif +0 -0
  163. data/test_data/ralbum/test_data/albums_directory/res/style1.css +453 -0
  164. data/test_data/ralbum/test_data/albums_directory/res/style2.css +414 -0
  165. data/test_data/ralbum/test_data/albums_directory/res/styleswitcher.js +89 -0
  166. data/test_data/ralbum/test_data/albums_directory/res/top.gif +0 -0
  167. data/test_data/ralbum/test_data/albums_directory/res/up.gif +0 -0
  168. data/test_data/ralbum/test_data/albums_directory/res/valid-css.png +0 -0
  169. data/test_data/ralbum/test_data/albums_directory/res/valid-xhtml.png +0 -0
  170. data/test_data/ralbum/test_data/albums_directory/res/valid-xhtml11.png +0 -0
  171. data/test_data/ralbum/test_data/albums_directory/res/vcss.gif +0 -0
  172. data/test_data/ralbum/test_data/albums_directory/test/album_1/img_0004.jpg.html +11 -0
  173. data/test_data/ralbum/test_data/albums_directory/test/album_1/img_0005.jpg.html +11 -0
  174. data/test_data/ralbum/test_data/albums_directory/test/album_1/img_0006.jpg.html +11 -0
  175. data/test_data/ralbum/test_data/albums_directory/test/album_1/img_0007.jpg.html +11 -0
  176. data/test_data/ralbum/test_data/albums_directory/test/album_1/index.html +13 -0
  177. data/test_data/ralbum/test_data/albums_directory/test/album_2/img_0008.jpg.html +11 -0
  178. data/test_data/ralbum/test_data/albums_directory/test/album_2/img_0009.jpg.html +11 -0
  179. data/test_data/ralbum/test_data/albums_directory/test/album_2/img_0010.jpg.html +11 -0
  180. data/test_data/ralbum/test_data/albums_directory/test/album_2/img_0011.jpg.html +11 -0
  181. data/test_data/ralbum/test_data/albums_directory/test/album_2/img_0012.jpg.html +11 -0
  182. data/test_data/ralbum/test_data/albums_directory/test/album_2/index.html +13 -0
  183. data/test_data/ralbum/test_data/albums_directory/test/img_0003.jpg.html +11 -0
  184. data/test_data/ralbum/test_data/albums_directory/test/index.html +13 -0
  185. data/test_data/ralbum/test_data/is_test/r_photo01_scaled.jpg +0 -0
  186. data/test_data/ralbum/test_data/is_test/r_photo01_sepia_scaled.jpg +0 -0
  187. metadata +276 -0
data/bin/ralbum.rb ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ #!/opt1/ruby-1.8.2/bin/ruby -W0
4
+
5
+ # ralbum
6
+ $RALBUM_HOME = File.expand_path( File.join( File.dirname( __FILE__), ".." ) )
7
+ $:.unshift( File.join($RALBUM_HOME, "lib" ) )
8
+
9
+ require 'ralbum'
10
+ require 'ralbum/cli/cli_ralbum'
11
+
12
+ CliRAlbum.run
@@ -0,0 +1,8 @@
1
+
2
+ The directory test_phototree contains photo from which we can build an
3
+ album. The simple script example.sh show how you can use ralbum.
4
+ The script build the album into a directory named 'test_album'
5
+
6
+ The http.rb spaws a webrik http server, that mount test_album, so
7
+ you can see the galleries into a web browser.
8
+
@@ -0,0 +1,3 @@
1
+
2
+ ruby ../bin/ralbum.rb -v 10 -f test_phototree test_album
3
+
data/example/httpd.rb ADDED
@@ -0,0 +1,35 @@
1
+ #!/opt1/ruby-1.8.2/bin/ruby
2
+ require 'optparse'
3
+ require 'ostruct'
4
+ require 'webrick'
5
+ include WEBrick
6
+
7
+ options = OpenStruct.new
8
+ options.dir_album = "test_album"
9
+
10
+ opts = OptionParser.new do |opts|
11
+ opts.banner =
12
+ "Usage: #{File.basename($0)}\n" +
13
+ "Run an httpd server"
14
+ opts.on("-a", "--album DIR", String, "album directory") { |str|
15
+ options.dir_galleries = str
16
+ }
17
+ opts.on("--help", "-h", "help!") {
18
+ puts opts
19
+ exit 0
20
+ }
21
+ end
22
+ opts.parse!(ARGV)
23
+
24
+ # run webserver
25
+ httpd_options = { :Port => 8888, :DocumentRoot => File.expand_path(options.dir_album) }
26
+
27
+ s = HTTPServer.new( httpd_options )
28
+
29
+ s.mount("/",
30
+ HTTPServlet::FileHandler,
31
+ File::join(options.dir_album), true )
32
+
33
+ trap("INT") { s.shutdown }
34
+ trap("TERM") { s.shutdown }
35
+ s.start
@@ -0,0 +1,21 @@
1
+ <?xml version='1.0'?>
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+ <album>
15
+ <title>album root</title>
16
+ <thumbnail/>
17
+ <shortdesc/>
18
+ <longdesc/>
19
+ <date/>
20
+ <order/>
21
+ </album>
@@ -0,0 +1,4 @@
1
+ ---
2
+ md5_0: 0
3
+ md5_1: 1
4
+ md5_2: 2
@@ -0,0 +1,4 @@
1
+ ---
2
+ md5_0: 0
3
+ md5_1: 1
4
+ md5_2: 2
@@ -0,0 +1,329 @@
1
+ <?xml version='1.0'?>
2
+ <project>
3
+ <photo_tree>
4
+ <album>
5
+ <title>
6
+ /media/Interzone/GioPrj/prj_github_rubyforge/ralbum/example/test_phototree
7
+ </title>
8
+ <thumbnail/>
9
+ <shortdesc/>
10
+ <longdesc/>
11
+ <date/>
12
+ <order/>
13
+ <photo>
14
+ <md5>
15
+ d9d64f41e4957110f92b94bc042f8c31
16
+ </md5>
17
+ <title>
18
+ r_photo01.jpg
19
+ </title>
20
+ <description>
21
+ descrizione di r_photo01.jpg
22
+ </description>
23
+ <file_date>
24
+ Tue May 19 00:10:56 +0200 2009
25
+ </file_date>
26
+ <exif>
27
+ <model>
28
+ DMC-FZ20
29
+ </model>
30
+ <date_and_time>
31
+ 2007:07:29 10:56:06
32
+ </date_and_time>
33
+ <FocalLength>
34
+ 36
35
+ </FocalLength>
36
+ <exposure_time>
37
+ 10/5000
38
+ </exposure_time>
39
+ <white_balance>
40
+ 0
41
+ </white_balance>
42
+ <iso_speed>
43
+ 100
44
+ </iso_speed>
45
+ </exif>
46
+ </photo>
47
+ <album>
48
+ <title>
49
+ subalbum01
50
+ </title>
51
+ <thumbnail/>
52
+ <shortdesc/>
53
+ <longdesc/>
54
+ <date/>
55
+ <order/>
56
+ <photo>
57
+ <md5>
58
+ 25a1804cb8344a62f93ce6d311d30afe
59
+ </md5>
60
+ <title>
61
+ subalbum01_photo01.jpg
62
+ </title>
63
+ <description>
64
+ description deathvalley_0046
65
+ </description>
66
+ <file_date>
67
+ Tue May 19 00:10:56 +0200 2009
68
+ </file_date>
69
+ <exif>
70
+ <model>
71
+ </model>
72
+ <date_and_time>
73
+ </date_and_time>
74
+ <FocalLength>
75
+ </FocalLength>
76
+ <exposure_time>
77
+ </exposure_time>
78
+ <white_balance>
79
+ </white_balance>
80
+ <iso_speed>
81
+ </iso_speed>
82
+ </exif>
83
+ </photo>
84
+ <photo>
85
+ <md5>
86
+ 75f03990470e74defe60563d01ae037f
87
+ </md5>
88
+ <title>
89
+ subalbum01_photo02.jpg
90
+ </title>
91
+ <description>
92
+ description deathvalley_0083
93
+ </description>
94
+ <file_date>
95
+ Tue May 19 00:10:56 +0200 2009
96
+ </file_date>
97
+ <exif>
98
+ <model>
99
+ </model>
100
+ <date_and_time>
101
+ </date_and_time>
102
+ <FocalLength>
103
+ </FocalLength>
104
+ <exposure_time>
105
+ </exposure_time>
106
+ <white_balance>
107
+ </white_balance>
108
+ <iso_speed>
109
+ </iso_speed>
110
+ </exif>
111
+ </photo>
112
+ <photo>
113
+ <md5>
114
+ debdb3dba5d6c56b5b51efb2bb275e5b
115
+ </md5>
116
+ <title>
117
+ subalbum01_photo03.jpg
118
+ </title>
119
+ <description>
120
+ description MntWhitney_0019
121
+ </description>
122
+ <file_date>
123
+ Tue May 19 00:10:56 +0200 2009
124
+ </file_date>
125
+ <exif>
126
+ <model>
127
+ </model>
128
+ <date_and_time>
129
+ </date_and_time>
130
+ <FocalLength>
131
+ </FocalLength>
132
+ <exposure_time>
133
+ </exposure_time>
134
+ <white_balance>
135
+ </white_balance>
136
+ <iso_speed>
137
+ </iso_speed>
138
+ </exif>
139
+ </photo>
140
+ <photo>
141
+ <md5>
142
+ 9cbfe09be57bc6979140bb94e0c68275
143
+ </md5>
144
+ <title>
145
+ subalbum01_photo04.jpg
146
+ </title>
147
+ <description>
148
+ description zion_0177
149
+ </description>
150
+ <file_date>
151
+ Tue May 19 00:10:56 +0200 2009
152
+ </file_date>
153
+ <exif>
154
+ <model>
155
+ Canon PowerShot G5
156
+ </model>
157
+ <date_and_time>
158
+ 2003:11:30 00:21:46
159
+ </date_and_time>
160
+ <FocalLength>
161
+ </FocalLength>
162
+ <exposure_time>
163
+ 1/10
164
+ </exposure_time>
165
+ <white_balance>
166
+ 0
167
+ </white_balance>
168
+ <iso_speed>
169
+ </iso_speed>
170
+ </exif>
171
+ </photo>
172
+ </album>
173
+ <album>
174
+ <title>
175
+ subalbum02
176
+ </title>
177
+ <thumbnail/>
178
+ <shortdesc/>
179
+ <longdesc/>
180
+ <date/>
181
+ <order/>
182
+ <photo>
183
+ <md5>
184
+ b9f183b8c5700d2d567a5aee51a21548
185
+ </md5>
186
+ <title>
187
+ subalbum02_photo01.jpg
188
+ </title>
189
+ <description>
190
+ description capitolreef_0030
191
+ </description>
192
+ <file_date>
193
+ Tue May 19 00:10:56 +0200 2009
194
+ </file_date>
195
+ <exif>
196
+ <model>
197
+ Canon PowerShot S500
198
+ </model>
199
+ <date_and_time>
200
+ 2004:04:11 07:00:29
201
+ </date_and_time>
202
+ <FocalLength>
203
+ </FocalLength>
204
+ <exposure_time>
205
+ 1/50
206
+ </exposure_time>
207
+ <white_balance>
208
+ 0
209
+ </white_balance>
210
+ <iso_speed>
211
+ </iso_speed>
212
+ </exif>
213
+ </photo>
214
+ <photo>
215
+ <md5>
216
+ a17467f87a56dc790c5328a77ef85f30
217
+ </md5>
218
+ <title>
219
+ subalbum02_photo02.jpg
220
+ </title>
221
+ <description>
222
+ description CrystalCove11_0031
223
+ </description>
224
+ <file_date>
225
+ Tue May 19 00:10:56 +0200 2009
226
+ </file_date>
227
+ <exif>
228
+ <model>
229
+ </model>
230
+ <date_and_time>
231
+ </date_and_time>
232
+ <FocalLength>
233
+ </FocalLength>
234
+ <exposure_time>
235
+ </exposure_time>
236
+ <white_balance>
237
+ </white_balance>
238
+ <iso_speed>
239
+ </iso_speed>
240
+ </exif>
241
+ </photo>
242
+ <photo>
243
+ <md5>
244
+ 53b723a64cba7407c7c4644921a36c82
245
+ </md5>
246
+ <title>
247
+ subalbum02_photo03.jpg
248
+ </title>
249
+ <description>
250
+ description CrystalCove9_0013
251
+ </description>
252
+ <file_date>
253
+ Tue May 19 00:10:56 +0200 2009
254
+ </file_date>
255
+ <exif>
256
+ <model>
257
+ </model>
258
+ <date_and_time>
259
+ </date_and_time>
260
+ <FocalLength>
261
+ </FocalLength>
262
+ <exposure_time>
263
+ </exposure_time>
264
+ <white_balance>
265
+ </white_balance>
266
+ <iso_speed>
267
+ </iso_speed>
268
+ </exif>
269
+ </photo>
270
+ <photo>
271
+ <md5>
272
+ 070cf6787aa56fbdaa1b2fd98708c34c
273
+ </md5>
274
+ <title>
275
+ subalbum02_photo04.jpg
276
+ </title>
277
+ <description>
278
+ descrizione Ninfee.jpg
279
+ </description>
280
+ <file_date>
281
+ Tue May 19 00:10:56 +0200 2009
282
+ </file_date>
283
+ <exif>
284
+ <model>
285
+ </model>
286
+ <date_and_time>
287
+ </date_and_time>
288
+ <FocalLength>
289
+ </FocalLength>
290
+ <exposure_time>
291
+ </exposure_time>
292
+ <white_balance>
293
+ </white_balance>
294
+ <iso_speed>
295
+ </iso_speed>
296
+ </exif>
297
+ </photo>
298
+ <photo>
299
+ <md5>
300
+ 1bc5b77f3e50b7fbe12c792ee438da45
301
+ </md5>
302
+ <title>
303
+ subalbum02_photo05.jpg
304
+ </title>
305
+ <description>
306
+ description Tramonto.jpg
307
+ </description>
308
+ <file_date>
309
+ Tue May 19 00:10:56 +0200 2009
310
+ </file_date>
311
+ <exif>
312
+ <model>
313
+ </model>
314
+ <date_and_time>
315
+ </date_and_time>
316
+ <FocalLength>
317
+ </FocalLength>
318
+ <exposure_time>
319
+ </exposure_time>
320
+ <white_balance>
321
+ </white_balance>
322
+ <iso_speed>
323
+ </iso_speed>
324
+ </exif>
325
+ </photo>
326
+ </album>
327
+ </album>
328
+ </photo_tree>
329
+ </project>
@@ -0,0 +1,17 @@
1
+ <?xml version='1.0'?>
2
+
3
+
4
+ <photo>
5
+ <title>titolo di r_photo01.jpg</title>
6
+ <description>descrizione di r_photo01.jpg</description>
7
+ <date>Sat Aug 18 15:14:14 +0200 2007</date>
8
+ <exif>
9
+ <model>DMC-FZ20.</model>
10
+ <date_and_time>2007:07:29 10:56:06.</date_and_time>
11
+ <exposure_time>10/5000</exposure_time>
12
+ <white_balance>0</white_balance>
13
+ <metering_mode/>
14
+ <iso_speed>100</iso_speed>
15
+ <FocalLength>36</FocalLength>
16
+ </exif>
17
+ </photo>