multistockphoto 0.8.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
data/website/face_boy.gif DELETED
Binary file
data/website/index.html DELETED
@@ -1,884 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
6
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
- <title>
8
- multistockphoto
9
- </title>
10
- <script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
11
- <style>
12
-
13
- </style>
14
- <script type="text/javascript">
15
- window.onload = function() {
16
- settings = {
17
- tl: { radius: 10 },
18
- tr: { radius: 10 },
19
- bl: { radius: 10 },
20
- br: { radius: 10 },
21
- antiAlias: true,
22
- autoPad: true,
23
- validTags: ["div"]
24
- }
25
- var versionBox = new curvyCorners(settings, document.getElementById("version"));
26
- versionBox.applyCornersToAll();
27
- }
28
- </script>
29
- </head>
30
- <body>
31
- <div id="main">
32
-
33
- <h1>multistockphoto</h1>
34
- <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/multistockphoto"; return false'>
35
- <p>Get Version</p>
36
- <a href="http://rubyforge.org/projects/multistockphoto" class="numbers">0.9.0</a>
37
- </div>
38
- <h1>&amp;#x2192; &#8216;multistockphoto&#8217;</h1>
39
- <h2>What</h2>
40
- <p>This program is intended to work with the german versions of the photo sites fotolia.de, zoonar.de and dreamstime.de.<br />
41
- Photographers can upload their photos to this sites. <br />
42
- Currently it works only with the german version. If you&#8217;re interested to adapt<br />
43
- it to other languages please email me.<br />
44
- <br />
45
- Dieses Programm bietet bequemen Upload von eigenen Photos zu Photo-Seiten wie<br />
46
- fotolia.de, zoonar.de oder anderen, bei denen man eigene Bilder zum Verkauf<br />
47
- anbieten kann. <br />
48
- Neue Photos werden automatisch zu allen Seiten hochgeladen, bei denen man <br />
49
- registriert ist.</p>
50
- <h2>Supporting this project</h2>
51
- <p>Die Programme dieses Projekts sind kostenlos erhältlich und verwendbar. <br />
52
- Du kannst jedoch die weitere Entwicklung dieses Projekts mit einer finanziellen <br />
53
- Zuwendung unterstützen (ansonsten müßte ich mich verstärkt anderen Projekten<br />
54
- widmen, die mehr finanziellen Ertrag einbringen, damit ich auch morgen noch<br />
55
- für meine Katzen das Futter kaufen kann :-)).</p>
56
- <p>Am bequemsten kannst du per Paypal an die Email-Adresse thopre@gmail.com <br />
57
- bezahlen. <br />
58
- Falls du per Überweisung zahlen willst, frage bitte nach meiner Kontoverbindung!</p>
59
- <p>Ich werde, aufteilt pro Quartal, eine Liste der Spender mit Namen und Betrag, <br />
60
- sortiert nach Spendenhöhe hier veröffenlichen. Wenn von dir nichts anderes<br />
61
- mitgeteilt, werde ich dich nach deinem Namen, soweit aus der Email-Adresse<br />
62
- ersichtlich, in der Liste veröffenlichen. Falls etwas anderes gewünscht wird,<br />
63
- z. B. &#8220;Firma <span class="caps">ABC</span> GmbH&#8221; oder anonym, dann teile mir dies bitte mit!</p>
64
- <h3>Spender</h3>
65
- <h4>Juli-September 2008</h4>
66
- <table>
67
- <tr>
68
- <td>Betrag</td>
69
- <td>Name</td>
70
- </tr>
71
- </table>
72
- <h4>April-Juni 2008</h4>
73
- <table>
74
- <tr>
75
- <td>Betrag</td>
76
- <td>Name</td>
77
- </tr>
78
- <tr>
79
- <td>1,00 &euro;</td>
80
- <td>Testspender</td>
81
- </tr>
82
- </table>
83
- <h2>Installing</h2>
84
- <p><pre class='syntax'><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="ident">multistockphoto</span></pre></p>
85
- <h2>The basics</h2>
86
- <p>Nach der Installation lege irgendwo einen Ordner namens &#8216;multistockphoto&#8217; an!<br />
87
- Innerhalb dieses Ordners lege bitte einen weiteren Ordner namens &#8216;upload&#8217; an!</p>
88
- <p>Du benötigst jetzt noch eine Datei namens &#8216;config.yaml&#8217; mit folgendem Inhalt:</p>
89
- <pre>
90
- ---
91
- :active_sites:
92
- - :fotolia
93
- - :zoonar
94
- - :photocase
95
- :zoonar:
96
- :password: 'lalala'
97
- :user: 'hugo'
98
- :total_per_day: 10
99
- :fotolia:
100
- :user: 'hugo'
101
- :password: 'lalal9589'
102
- :ftp_user: '34567798'
103
- :ftp_password: 'hugolala19589'
104
- :photocase:
105
- :user: 'hugo'
106
- :password: 'geheim'
107
- </pre>
108
- <p>Trage dort deine Zugangsdaten ein! Achtung: Die Einrückung links ist wichtig. <br />
109
- Der Abschnitt &#8216;:active_sites:&#8217; bezeichnet die Sites, mit denen du arbeiten <br />
110
- willst. Falls du nicht alle verwenden willst, lösche einfach die entsprechende<br />
111
- Zeile.</p>
112
- <p>Ebenso kannst du, falls du eine Site vorübergehend nicht verwenden willst, auch<br />
113
- einfach die entsprechende Zeile löschen (die eigentlichen Login-Daten weiter<br />
114
- unter können aber unverändert bleiben).</p>
115
- <p>Im Gem-Directory ist eine Vorlage, die du kopieren kannst.<br />
116
- Wenn du nicht bei allen aufgelisteten Sites Mitglied bist oder die Bilder dort<br />
117
- hochladen möchtest, dann lösche einfach<br />
118
- die entsprechenden Abschnitte &#8211; du ersparst dir und den jeweiligen Servern <br />
119
- unnötige Last, die bei fehlerhaften Einloggversuchen vergeudet wird.</p>
120
- <p>Wenn du eines oder mehrere neue Bilder hochladen willst, kopiere die Bilddateien<br />
121
- in den upload-Ordner!<br />
122
- Dann rufe (innerhalb des multistockphoto-Ordners) das Kommando</p>
123
- <pre>multistockphoto --send-all
124
- </pre>
125
- <p>oder</p>
126
- <pre>multistockphoto --send-all --verbose
127
- </pre>
128
- <p>auf! Dieses erledigt den Upload aller neuen Photos zu allen definierten <br />
129
- Photo-Sites.</p>
130
- <p>Dies ist der wohl am häufigsten verwendete Befehl. Mit der weiteren Option &#8216;&#8212;verbose&#8217; <br />
131
- wird nach jedem Einzelupload noch zusätzlich ausgegeben, wieviel Dateien je<br />
132
- Seite in schon hochgeladen wurden.</p>
133
- <p>Die Photo-Dateien im upload-Ordner müssen nach dem Upload nicht gelöscht<br />
134
- werden &#8211; bei einem weiteren Aufruf werden bereits gesendete Photos nicht noch<br />
135
- einmal gesendet.</p>
136
- <p>Grundsätzlich werden alle Dateien mit den Endungen<br />
137
- .<span class="caps">PNG</span>|.<span class="caps">JPG</span>|.<span class="caps">GIF</span>|.<span class="caps">JPEG</span>|.<span class="caps">EPS</span>|.AI|.<span class="caps">PSD</span>|.<span class="caps">PDF</span>|.<span class="caps">TIF</span>|.<span class="caps">TIFF</span><br />
138
- von diesem Programm berücksichtigt und hochgeladen. <br />
139
- Groß- oder Kleinschreibung ist egal. Es gibt jedoch pro Photo-Site<br />
140
- Einschränkungen, welche Formate diese Site verarbeiten kann. Es kann also sein,<br />
141
- daß eine Site .<span class="caps">PSD</span> Dateien verarbeiten kann, die andere jedoch nur mit .<span class="caps">JPG</span><br />
142
- Dateien etwas anfangen kann.<br />
143
- Eine automatische Konvertierung von einem ins andere Format wird von diesem<br />
144
- Programm nicht vorgenommen &#8211; du bist also selbst dafür verantwortlich, <br />
145
- daß ein Bild im richtigen Format an die richtige Site gelangt.</p>
146
- <p><span class="caps">TODO</span>: Hier fällt mir ein: es ist etwas problematisch, wenn man an eine Site<br />
147
- eine <span class="caps">PSD</span>-Datei schickt und diese auch an andere Sites hochladen will, die <br />
148
- dieses Format nicht akzeptieren und daraufhin diese Datei in eine <span class="caps">JPG</span>-Datei<br />
149
- manuell konvertiert. Die Folge wäre, daß andere Sites zwar die <span class="caps">JPG</span>-Datei akzeptieren,<br />
150
- aber daß auch eine Dublette nochmal an die <span class="caps">PSD</span>-akzeptierende Site gesendet wird,<br />
151
- diesmal im <span class="caps">JPG</span>-Format. Hier muß ich mir noch eine clevere Lösung einfallen lassen.<br />
152
- Am geschicktesten wäre es momentan noch, z.B. nur mit <span class="caps">JPG</span>-Dateien zu arbeiten,<br />
153
- so wie ich das tue.</p>
154
- <p>Das Programm kann Photos, die im Hochformat aufgenommen wurden, automatisch <br />
155
- drehen, falls die Kamera dies erkennen kann und in den Photo-Dateien speichert.<br />
156
- In diesem Fall wird das Photo zuerst gedreht und dann auf die entsprechende Site<br />
157
- hochgeladen. Hierbei werden Dateien in diesem Directory erzeugt, die mit &#8216;rot_&#8217;<br />
158
- (für rotiert, wer hätte es gedacht?) beginnen.</p>
159
- <p>Achtung: Beim normalen Hochladen werden diese Dateien nicht berücksichtigt,<br />
160
- du solltest also möglichst keine echten Photo hochladen wollen, die mit &#8216;rot_&#8217;<br />
161
- beginnen. In der Praxis dürfte dies kein großes Problem sein. Falls der Dateiname<br />
162
- doch mit &#8216;rot_&#8217; (die Farbe) beginnen sollte, benenne sie einfach in &#8216;Rot_&#8230;&#8217; um,<br />
163
- dann wird diese Datei auch hochgeladen. Die rotierten<br />
164
- Dateien dürfen gefahrlos gelöscht werden, ist aber im normalen Betrieb für die<br />
165
- Funktionsweise dieses Programm nicht notwendig, da die gedrehten Dateien bei<br />
166
- Bedarf einfach neu angelegt werden.</p>
167
- <p>Ab dem Release 0.6.2 weiß jede der Site-Klassen, ob ein Drehen des Bildes vorab<br />
168
- nötig ist, oder ob die Site das Drehen selbständig erkennen kann. Falls eine<br />
169
- Site das Drehen beherrscht, wird nicht von diesem Programm vorab gedreht, sondern<br />
170
- es wird die originale Datei hochgeladen. Zum jetzigen Zeitpunkt beherrscht <br />
171
- jedoch keine der bisher realisierten Sites das Drehen von sich aus.</p>
172
- <p>Das Programm erstellt (im Directory multistockphoto) eine Datei namens<br />
173
- &#8216;sendeliste.dat&#8217;, in der die erfolgreichen Uploads mit Site, Dateiname und<br />
174
- Datum/Uhrzeit protokolliert werden. Diese Datei darf nicht gelöscht werden, <br />
175
- da diese Datei auch dazu dient, festzustellen, ob eine Datei schon gesendet <br />
176
- wurde.<br />
177
- Kurz: falls eine Photo-Datei in dieser Datei noch nicht auftaucht, wird<br />
178
- sie an die betreffende Seit gesendet. Bei Problemen bei einzelnen Uploads kann<br />
179
- man aber in dieser Datei z.B. eine Zeile löschen, was zur Folge hat, daß <br />
180
- diese Datei beim nächsten Aufruf erneut hochgeladen wird.</p>
181
- <p>Es schadet nicht, von Zeit zu Zeit ein Backup dieser Datei anzulegen, so daß<br />
182
- bei einem eventuellem Schadensfall bei dieser Datei eine Backup-Datei existiert,<br />
183
- die man ggf. wieder in die Original-Datei umbenennen kann. <br />
184
- <br />
185
- Je nach Photo-Site mußt du dann dort online noch Stichworte und ggf. andere<br />
186
- Daten zu den einzelnen Bildern eintragen.</p>
187
- <p>Einzelne Sites handhaben dies unterschiedlich.</p>
188
- <p>Das Setzen von Schlüsselworten kann mittels diesen Programms bereits erledigt<br />
189
- werden. Dazu später mehr.<br />
190
- Derzeit müssen auf den einzelnen Sites neben den Schlüsselworten noch einige<br />
191
- andere Daten eingegeben werden. Diese Nachbearbeitung auf der jeweiligen Seite <br />
192
- ist derzeit noch nötig, es ist aber<br />
193
- geplant, daß auch weitere Daten von diesem Programm schon gesetzt werden<br />
194
- können.</p>
195
- <p>Desweiteren können Kriterien, z. B. Mindestauflösung eines Bildes in Zukunft<br />
196
- schon vor des Hochladen überprüft werden. Dies ist jedoch noch nicht implementiert.</p>
197
- <h2>Demonstration of usage</h2>
198
- <p>Wechseln in Arbeitsdirectory:</p>
199
- <pre>$ cd multistockphoto
200
- </pre>
201
-
202
- <pre>
203
- $ multistockphoto --help
204
- Usage: multistockphoto [-vayntscrxlpoq]
205
- Options:
206
- --help Show this message
207
- -v, --version Show version
208
- -a, --send-all Send all files
209
- -y, --verbose Verbose output
210
- -n, --not-sent Count not sent files per site
211
- -t, --total-transfers Dont't send more than N photos in total
212
- -s, --total-per-site Send no more than N photos per site
213
- -c, --check-orientation Displays the orientiation of photo files
214
- -r, --rotate file [file2 ...] Rotate a photo file 90 degrees to the left
215
- -x, --stats Displays statistics
216
- -l, --list-done List photos sent to all sites
217
- -p, --purge-done Purge photos sent to all sites
218
- -o, --ordered Send/List files in alphabetical order
219
- -q, --no-tags List photos without tags file
220
- --dont-send
221
- --dont-log
222
- </pre>
223
- <p>Senden aller noch nicht hochgeladenen Photos:</p>
224
- <pre>
225
- $ multistockphoto --send-all
226
- send-all
227
- upload/img_2746.jpg
228
- fotolia:upload/img_2746.jpg
229
- zoonar:upload/img_2746.jpg
230
- </pre>
231
- <p>Du kannst den Upload-Proze&szlig; an jeder Stelle abbrechen. Beim nächsten Start<br />
232
- werden die noch nicht gesendeten Photos hochgeladen.</p>
233
- <p>Bitte beachte auch, daß es bei einigen Photo-Sites Beschränkungen für den Upload<br />
234
- von Photos gibt (z.B. zoonar.de erlaubt bei mir derzeit 10 Photos pro Tag). In diesem Fall <br />
235
- würdest du eine Fehlermeldung bekommen, daß das Photo nicht hochgeladen werden<br />
236
- konnte. Dies ist dann kein Fehler dieses Programms. <br />
237
- Starte dann einfach das Programm am nächsten Tag noch einmal, um den Rest der<br />
238
- Photos hochzuladen!</p>
239
- <p>Falls es bei einer Site dreimal hintereinander Fehler beim Hochladen gibt, wird<br />
240
- diese Site im weiteren Programmablauf nicht mehr berücksichtigt. Damit wird <br />
241
- vermieden, daß trotz eines maximalen Upload-Limits oder weil diese Site temporär<br />
242
- nicht erreichbar ist, immer wieder vergeblich versucht wird, Photos an diese <br />
243
- Site zu senden.</p>
244
- <p>Weitere Beispiele:</p>
245
- <pre>multistockphoto --send-all --verbose --tags-only --count=10 --shuffle</pre>
246
- <p>Senden aller noch nicht gesendeten Photos, ausführliche Ausgabe, nur Photos mit<br />
247
- Tags-Files senden, nur senden, wenn mindestens 10 Tags in der Tags-Datei vorhanden<br />
248
- sind, in zufälliger Reihenfolge senden.</p>
249
- <p>Diesen Aufruf könnte man sich in einem Shell-Skript/Batch-Datei speichern, so<br />
250
- daß man ihn bei jedem regulären Hochladen von Photos bequem aufrufen kann.</p>
251
- <pre>multistockphoto --send-all --verbose --tags-only --count=10 --ordered</pre>
252
- <p>Wie zuvor, jedoch wird in alphabetischer Sortierung der Bilddateien gesendet.</p>
253
- <pre>multistockphoto --send-all --verbose --tags-only --count=10</pre>
254
- <p>Wie zuvor, jedoch ist keine Sortierung vorgegeben. Das Senden erfolgt in der<br />
255
- Reihenfolge, wie die Dateien im Filesystem gefunden werden.</p>
256
- <pre>multistockphoto --send-all --total-transfers=7</pre>
257
- <p>Senden von noch nicht gesendeten Photos. Das Hochladen, wird aber beendet,<br />
258
- wenn insgesamt 7 Photos hochgeladen wurden.</p>
259
- <pre>multistockphoto --send-all --total-per-site=5</pre>
260
- <p>Senden von noch nicht gesendeten Photos. Das Hochladen, wird aber beendet,<br />
261
- wenn an jede aktive Site 5 Photos hochgeladen wurden.</p>
262
- <pre>multistockphoto --not-sent</pre>
263
- <p>Gibt aus, wieviele Photo pro Site noch nicht gesendet wurden.</p>
264
- <pre>multistockphoto --no-tags</pre>
265
- <p>Listet Photo-Dateien auf, die noch keine zugehörige .tags-Datei haben.</p>
266
- <pre>multistockphoto --no-tags --count=10</pre>
267
- <p>Listet Photo-Dateien auf, die noch keine zugehörige .tags-Datei haben oder deren<br />
268
- .tags-Datei weniger als 10 Keywords enthält.</p>
269
- <p>Bei den beiden letzten Beispielen kann zusätzlich noch der Parameter &#8212;ordered <br />
270
- angegeben werden, um die Datei alphabetisch aufsteigend auszugeben.</p>
271
- <h2>Photo-Titel und Stichworte</h2>
272
- <p>Bei jeder Photo-Site ist es notwendig, hochgeladene Photos mit einem Titel und<br />
273
- Stichworten (auch Keywords genannt) zu versehen, damit diese Photos leichter<br />
274
- von Suchenden gefunden werden können.</p>
275
- <p>Dies geschieht bei verschiedenen Site auf unterschiedliche Weise. Bei Zoonar kann<br />
276
- man Photos erstmal hochladen, ohne daß Stichworte vorhanden sind (es dürfen aber<br />
277
- auch schon Stichworte in den <span class="caps">IPTC</span>-Daten vorhanden sein). Nachdem ein Bild <br />
278
- akzeptiert wurde, muß es aber auf der Seite mit Titel und Stichworten versehen <br />
279
- werden, ansonsten wird es nach 30 Tagen gelöscht. <br />
280
- Bei fotolia wiederum ist es so, daß ein hochgeladenes Bild mit Stichworten <br />
281
- versehen sein muß, bevor es überhaupt begutachtet wird (ist natürlich dumm,<br />
282
- wenn man sich die Arbeit macht und das Bild wird dann doch abgelehnt &#8211; ist<br />
283
- aber nun mal so).</p>
284
- <p>Je nach Site kann die Site bereits von sich aus <span class="caps">IPTC</span>-Daten der Bilder auswerten<br />
285
- und die Stichworte automatisch daraus extrahieren, falls diese in den Bildern<br />
286
- vorhanden sind.</p>
287
- <p>Es gibt jetzt verschiedene Möglichkeiten:</p>
288
- <ol>
289
- <li>Nachträgliche manuelle Bearbeitung der Bilder auf der jeweiligen Web-Seite</li>
290
- <li>Versorgung mit Keywords mit beliebigem externem Programm vor dem Upload<br />
291
- <br />
292
- Um unabhängig von einem externen Programm zu sein und eine für alle Betriebssysteme<br />
293
- passende Lösung zu ermöglichen, habe ich eine dritte Möglichkeit für dieses <br />
294
- Programm zur Verfügung gestellt.</li>
295
- </ol>
296
- <p>Zu jeder Bilddatei kann eine zusätzliche Textdatei erstellt werden (bitte nicht mit<br />
297
- mit Word oder ähnlichen Programmen erstellen, sondern wirklich nur eine einfache<br />
298
- Textdatei), die die Stichworte zu einem Bild enthält. Beispiel: die Bilddatei<br />
299
- heißt IMG_1234.<span class="caps">JPG</span> dann muß der Name der Keywords-Datei IMG_1234.tags lauten.</p>
300
- <p>Der Inhalt dieser Textdatei enthält die Keywords entweder durch Komma oder Leerzeichen<br />
301
- getrennt oder je Zeile ein Keyword (auch gemischt möglich).</p>
302
- <p>Beispiel:<br />
303
- <pre><br />
304
- Baum,Pflanze<br />
305
- Rose rot weiß<br />
306
- Garten<br />
307
- Park <br />
308
- </pre><br />
309
- <br />
310
- Falls nun beim Hochladen der Photos zu einem Photo eine tags-Datei gefunden wird,<br />
311
- so werden die darin enthaltenen Keywords in die Photodatei geschrieben und diese<br />
312
- dann hochgeladen, so daß bei Sites, die diese auswerten, die Keywords nicht mehr<br />
313
- manuell gesetzt werden müssen.</p>
314
- <p>Obwohl es nicht zwingend notwendig ist, empfiehlt es sich, für jedes Bild eine<br />
315
- tags-Datei zu erstellen, wenn man mit mehreren Sites arbeitet, die diese<br />
316
- Daten automatisch auswerten können, da man die Arbeit dann nur einmal erledigen<br />
317
- muß.</p>
318
- <p>Ich selbst verwende die tags-Dateien derzeit <s>nicht, weil ich z.B. bei Zoonar<br />
319
- sowieso nur die akzeptierten Photos verschlagworten muß, was weniger Aufwand<br />
320
- ist, als wenn ich alle vorab mit tags-Dateien versorge</s> immer mehr, weil<br />
321
- es mir Aufwand spart, wenn ich Keywords nicht bei jeder Site einzeln online<br />
322
- erfassen muß.<br />
323
- Bei fotolia allerdings muß vor der Freigabe jedes Bild mit Keywords versorgt<br />
324
- werden (auch wenn es dann abgelehnt wird). Ich bin nicht sicher, ob fotolia<br />
325
- das macht, aber falls fotolia die Keywords in der Datei auswerten kann, wäre<br />
326
- es weniger Aufwand, mit Tags-Dateien zu arbeiten. <br />
327
- Ich habe bei fotolia noch mal nachgesehen: Fotolia unterstützt Keywords in den<br />
328
- Photo-Dateien &#8211; also werde ich in Zukunft auch die Tags-Dateien pflegen, weil<br />
329
- ich die Keywords ja sowieso mindestens bei fotolia eingeben muß. Mal schauen,<br />
330
- ob die von mir gepflegten Keywords in nächster Zeit auch bei fotolia korrekt<br />
331
- ankommen &#8230;</p>
332
- <p>Aber das muß jeder für sich abschätzen, was für die eigenen Sites praktikabler<br />
333
- ist. Außerdem ist das schöne an tags-Dateien ja auch, daß man sie nicht unbedingt<br />
334
- verwenden muß.</p>
335
- <p>Ein weiterer Vorteil bei der Verwendung von tags-Dateien ist, daß du bei ähnlichen<br />
336
- Photos, für die die gleichen Keywords verwendet werden können, einfach die tags-Dateien<br />
337
- kopieren kannst und nicht mit einem anderen Programm immer die gleichen Keywords<br />
338
- eingeben mußt.</p>
339
- <p>Beachte bitte auch, daß, wenn du den Namen der Photo-Datei änderst, zum Beispiel<br />
340
- von IMG_1234.<span class="caps">JPG</span> nach IMG_1234_bearbeitet.<span class="caps">JPG</span>, daß dann auch der Name einer<br />
341
- eventuell vorhandenen tags-Datei nach IMG_1234_bearbeitet.tags geändert werden<br />
342
- muß!</p>
343
- <p>Derzeit werden tags-Dateien nur beim erstmaligen Hochladen eines Photos zur<br />
344
- entsprechenden Site verwendet. Falls du tags-Dateien nachträglich erstellst<br />
345
- oder änderst, werden diese Änderungen für bereits gesendete Photos nicht mehr<br />
346
- berücksichtigt.<br />
347
- Denkbar wäre, bei Sites, die das auch unterstützen, daß eine Änderung an den <br />
348
- tags-Dateien auch bei der jeweiligen Site nachgezogen wird. Dies ist aber derzeit<br />
349
- nicht implementiert.</p>
350
- <p>Der Titel eines Photos wird derzeit mit diesem Programm noch nicht unterstützt.<br />
351
- Das ist aber in einer der nächsten Versionen geplant.</p>
352
- <p>Ich persönlich gehe bei der Erstellung der tags-Dateien folgendermaßen vor:<br />
353
- Ich arbeite unter Linux, für andere Betriebssysteme kann man das aber sich ähnlich<br />
354
- lösen.</p>
355
- <p>Als erstes öffne ich ein Dateifenster des upload-Ordners um eine Thumbnail-Übersicht, <br />
356
- aller hochzuladenden Bilder zu sehen.<br />
357
- Dann öffne ich ein Text-Shell, gehe ins multistockphoto-Arbeitsverzeichnis und <br />
358
- gebe dort die Kommandos<br />
359
- <pre>while true; do multistockphoto &#8212;no-tags|sort -r; date; sleep 60; done<br />
360
- </pre></p>
361
- <p>oder</p>
362
- <pre>while true; do multistockphoto --no-tags --count 10|sort -r; date; sleep 60; done
363
- </pre>
364
- <p>wenn ich mindestens 10 Keywords haben will, ein. Das ist die Syntax von <br />
365
- Bourne-Shell oder Bash. Falls du eine andere Shell<br />
366
- verwendest, könnte das Kommando leicht unterschiedlich sein. Sinn der Sache<br />
367
- ist jedenfalls, eine sortierte Übersicht aller Photos ohne tags-Datei zu erhalten,<br />
368
- eine Minute zu pausieren, und dann das gleiche, bis man das Kommando abbricht.</p>
369
- <p>Dann öffne ich eine weitere Shell, gehe innerhalb es multistockphoto-Verzeichnisses<br />
370
- ins upload-Verzeichnis, suche mir aus der Liste ein Photo nach dem anderen heraus<br />
371
- und erstelle mit einem beliebigen Texteditor (ich verwende &#8216;vi&#8217;, auch als &#8216;vim&#8217;<br />
372
- bekannt) z.B. die Datei IMG_5434.tags.</p>
373
- <p>Dann suche ich mir das nächste Bild aus der Liste aus, usw.<br />
374
- Bei Bildern, die das gleiche Motiv haben und die gleichen Keywords bekommen sollen,<br />
375
- kann ich dann auch einfach die tags-Dateien kopieren:<br />
376
- <pre>cp IMG_1234.tags IMG_1235.tags</pre></p>
377
-
378
- <h2>Optionen der Kommandozeile im Einzelnen</h2>
379
- <p>Folgende Optionen können dem Programm multistockphoto übergeben werden:</p>
380
- <h3>&#8212;version</h3>
381
- <p>gibt die aktuelle Versionsnummer von multistockphotos bzw. des gesamten Gems<br />
382
- aus:</p>
383
- <pre>
384
- $ multistockphoto --version
385
- multistockphoto 0.6.0
386
- </pre>
387
- <h3>&#8212;verbose</h3>
388
- <p>gibt mehr und ausführlichere Informationen als im Normalfall aus. Dies wird z. Z.<br />
389
- hauptsächlich in Verbindung mit dem Kommando &#8212;send-all, aber auch bei<br />
390
- anderen Optionen, soweit sinnvoll, verwendet.</p>
391
- <h3>&#8212;not-sent</h3>
392
- <p>Gibt aus, wieviele Bilder pro Site noch zum Hochladen ausstehen. Z. B.:</p>
393
- <pre>
394
- $ multistockphoto --not-sent
395
- not sent photos:
396
- {"fotolia"=&gt;822, "photocase"=&gt;823, "zoonar"=&gt;1006}
397
- </pre>
398
- <p>heißt, bei fotolia stehen noch 822 Photos, bei photocase 823 und bei zoonar <br />
399
- noch 1006 Photos zum Senden aus.</p>
400
- <h3>&#8212;total-transfers N</h3>
401
- <p>Es werden bei diesem Programmdurchlauf nicht mehr als insgesamt &#8216;N&#8217; Photos <br />
402
- hochgeladen. Wie diese &#8216;N&#8217; Photos auf die einzelnen Sites aufgeteilt werden, ist<br />
403
- nicht vorhersehbar, und hängt davon ab, welche Bilder bereits an welche Sites <br />
404
- hochgeladen wurden.</p>
405
- <p>Beispiel &#8216;multistockphoto &#8212;total-transfers 10&#8217; lädt insgesamt 10 Bilder hoch.</p>
406
- <h3>&#8212;total-per-site N</h3>
407
- <p>Es werden pro Site nicht mehr als &#8216;N&#8217; Photos hochgeladen. Sobald an jede Site<br />
408
- &#8216;N&#8217; Photos hochgeladen wurden, wird das Programm beendet.</p>
409
- <p>Beispiel &#8216;multistockphoto &#8212;total-transfers 3&#8217; lädt Bilder hoch, bis jede der<br />
410
- aktiven Sites 3 Bilder bekommen hat.</p>
411
- <h3>&#8212;stats</h3>
412
- <p>Statistik über gesendete Photos</p>
413
- <p>Der Schalter &#8212;stats zeigt eine Statistik über die Anzahl der gesendeten Photos<br />
414
- innerhalb der letzten 10 Tage, aufgeteilt nach Site.<br />
415
- Außerdem eine Summenzeile über alle bisher gesendeten Photos. Achtung: Diese<br />
416
- Summen beziehen sich nicht auf die letzen zuvor aufgelisteten Tage sondern auf<br />
417
- sämtliche bisher gesendeten Photos.</p>
418
- <pre>
419
- $ multistockphoto --stats
420
- Statistics
421
- | fotolia | zoonar | photocase | total
422
- 2008-05-23 | 0 | 0 | 0 | 0
423
- 2008-05-22 | 7 | 7 | 7 | 21
424
- 2008-05-21 | 4 | 4 | 3 | 11
425
- 2008-05-20 | 7 | 6 | 6 | 19
426
- 2008-05-19 | 5 | 9 | 5 | 19
427
- 2008-05-18 | 6 | 6 | 6 | 18
428
- 2008-05-17 | 7 | 7 | 7 | 21
429
- 2008-05-16 | 7 | 7 | 6 | 20
430
- 2008-05-15 | 6 | 6 | 6 | 18
431
- 2008-05-14 | 0 | 1 | 1 | 2
432
-
433
- total | 251 | 174 | 250 | 675
434
- </pre>
435
- <h3>&#8212;list-done</h3>
436
- <p>Auflisten aller komplett gesendeten Photos</p>
437
- <p>Um Photos aufzulisten, die bereits an alle Photo-Sites gesendet wurden, gibt<br />
438
- es den Schalter &#8212;list-done</p>
439
- <h3>&#8212;purge-done</h3>
440
- <p>Verschieben aller komplett gesendeten Photos ins done-Directory</p>
441
- <p>Falls du Photos aus dem Arbeitsdirectory löschen möchtest (aus Platzgründen oder<br />
442
- weil du alte Dateien dort nicht mehr haben willst), die bereits an alle<br />
443
- definierten Sites gesendet wurden, rufe</p>
444
- <pre>
445
- multistockphoto --purge-done
446
- </pre>
447
- <p>auf!</p>
448
- <p>Daraufhin werden alle komplett gesendeten Photos ins Directory &#8216;done&#8217; verschoben.<br />
449
- Das done-Directory wird automatisch angelegt, falls es noch nicht existiert.</p>
450
- <p>Die Dateien im done-Directory kannst du nun entweder löschen oder, je nach <br />
451
- Bedarf irgendwie archivieren.</p>
452
- <p>Ich lasse die Bilder im done-Directory aber einfach erstmal dort stehen, damit<br />
453
- das upload-Directory übersichtlicher bleibt und nur die noch nicht vollständig<br />
454
- gesendeten Bilder enthält.</p>
455
- <p>Bitte beachte aber, daß, falls du später eine weitere Photo-Site definierst,<br />
456
- diese alten Bilder nicht mehr an die neue Photo-Site geschickt werden. Falls<br />
457
- du sie jedoch im Arbeitsverzeichnis beläßt, werden auch diese alten Bilder <br />
458
- an eventuelle neue Photo-Sites versendet.<br />
459
- Du kannst aber jederzeit die verschobenen oder archivierten Bilder wieder ins<br />
460
- Arbeitsverzeichnis kopieren. Bereits erfolgte Uploads werden davon nicht beeinflußt.</p>
461
- <h3>&#8212;ordered</h3>
462
- <p>Die Reihenfolge bei &#8212;send-all ist davon abhängig, in welcher Reihenfolge die<br />
463
- Photos im upload-Directory angelegt wurden. Dies ist nicht unbedingt die <br />
464
- alphabetische Reihenfolge der Dateien.</p>
465
- <p>Normalerweise ist dies nicht relevant, da früher oder später doch jede noch nicht<br />
466
- gesendetet Datei an die einzelnen Sites hochgeladen wird. Wenn du jedoch möchtest,<br />
467
- daß die Dateien in alphabetischer Reihenfolge (also die ältesten Dateien zuerst)<br />
468
- hochgeladen werden sollen, dann rufe das Programm mit dem zusätzlichen Parameter <br />
469
- &#8212;ordered auf. Die Photos werden dann in alphabetischer Reihenfolge hochgeladen.</p>
470
- <h3>&#8212;check-orientation Bild1.jpg Bild2.jpg</h3>
471
- <p>Listet die Orientation der angegebenen Bilder auf.</p>
472
- <h3>&#8212;rotate bild1.jpg [bild2.jpg ..]</h3>
473
- <p>Rotiert alle angegebenen Bilder um 90 Grad. Die Originaldatei wird dabei durch<br />
474
- die gedrehte Datei ersetzt.</p>
475
- <h3>&#8212;no-tags</h3>
476
- <p>Ein Aufruf mit dieser Option, auch in Verbindung mit &#8212;ordered, listet alle<br />
477
- Photo-Dateien auf, für die keine tags-Datei exisitiert.</p>
478
- <p>Es gibt zwei Möglichkeiten, diese Option zu verwenden.</p>
479
- <pre>--no-tags</pre>listet die Bilddateien auf, für die keine Tags-Datei
480
- <p>existiert.</p>
481
- <p>Bei der zweiten Form mit <pre>multistockphoto &#8212;no-tags &#8212;count N</pre> mit einem <br />
482
- zusätzlichen numerischen <br />
483
- Argument werden nicht nur Photos ohne Tags-Datei aufgelistet, sondern auch <br />
484
- Tags-Dateien, die weniger als die hier angegebene Anzahl von Keywords besitzen.</p>
485
- <p>Angenommen, du arbeitest mit den Sites fotolia und zoonar. Fotolia will mindestens<br />
486
- sieben Keywords haben, bevor eine Datei begutachtet wird. Wenn du die Keywords<br />
487
- nicht online auf der Fotolia Seite eingeben willst, empfiehlt es sich, die <br />
488
- Dateien mit <pre>multistockphoto &#8212;no-tags &#8212;count 7</pre> zu testen um ggf. Keywords zu ergänzen.<br />
489
- Bei einer Annahme eines Bildes bei zoonar, müssen mindestens 10 Keywords angegeben<br />
490
- sein. Wenn du auch diesen Fall abdecken willst, gib <br />
491
- <pre>multistockphoto &#8212;no-tags &#8212;count 10</pre> an -<br />
492
- damit sind dann alle Sites zufrieden.</p>
493
- <p><s>Achtung: die zweite Form dauert wesentlich länger, wenn du mit vielen Dateien<br />
494
- im Upload-Directory arbeitest (ca. ab 500-1000).</p>
495
- <p>Zeiten bei mir (1550 Bilddateien)</p>
496
- <p>1. ohne &#8212;count Parameter: 6 Sekunden<br />
497
- 2. mit &#8212;count Parameter: 6 Minuten, 12 Sekunden<br />
498
- </s></p>
499
- <p>Ist mindestens seit dem Release 0.8.0 annähernd gleich schnell.</p>
500
- <h3>&#8212;tags-only</h3>
501
- <p>Diese Option, in Verbindung mit dem Aufrufparameter &#8212;send-all sendet nur Photos,<br />
502
- für die eine zugehörige .tags Datei existiert. <br />
503
- Diese Option ist arbeitstechnisch nützlich, wenn du mindestens eine Site verwendest,<br />
504
- bei der das Vergeben von Keywords obligatorisch ist, bevor ein Bild begutachtet<br />
505
- wird (z. B. fotolia). Denn in diesem Fall mußt du die Keywords so oder so (entweder<br />
506
- offline oder online) erfassen.<br />
507
- Solltest du jedoch z. B. nur zoonar und photocase verwenden, kannst du auf das<br />
508
- Erfassen von Keywords vorab gut verzichten, da du nur für die angenommenen<br />
509
- Photos Keywords erfassen mußt, was wahrscheinlich weniger Aufwand<br />
510
- bedeutet.</p>
511
- <h3>&#8212;plist</h3>
512
- <p>Diese Option listet alle Datein im Upload-Directory auf und kennzeichnet, an<br />
513
- welche Sites diese bisher gesendet wurden.</p>
514
- <pre> fotolia zoonar photocase dreamstime
515
- upload/IMG_6379.JPG (t 11) + + +
516
- upload/IMG_5606.JPG + + +
517
- upload/IMG_4980.JPG + + +
518
- upload/IMG_6038.JPG + + +
519
- upload/IMG_4003.JPG + + +
520
- upload/IMG_5523.JPG + + +
521
- upload/IMG_6085.JPG
522
- upload/IMG_5698.JPG + + +
523
- upload/IMG_5728.JPG + + +
524
- ...</pre>
525
- <p>Ein &#8216;+&#8217; heißt, daß das Photo an diese Site schon gesendet wurde.<br />
526
- Ein &#8216;(t xx)&#8217; (xx ist eine Zahl) nach dem Dateinamen kennzeichnet, daß für diese <br />
527
- Datei eine tags-Datei existiert sowie die Anzahl von Keywords beinhaltet, die<br />
528
- nach dem &#8216;t&#8217; steht. Im obigen Beispiel hat die Tags-Datei 11 Keywords.</p>
529
- <p>Bei diesem Befehl kann auch zusätzlich die Option &#8212;ordered angegeben werden,<br />
530
- um die Dateien sortiert nach dem Dateinamen auszugeben.</p>
531
- <h3>&#8212;count N</h3>
532
- <p>Diese Option kann in Verbindung mit &#8212;send-all oder &#8212;no-tags verwendet werden<br />
533
- und bedeutet, daß mindestens N Keywords zu einer Datei vorhanden sein müssen.<br />
534
- Alleine für sich kann diese Option nicht verwendet werden.</p>
535
- <p>In Verbindung mit &#8212;send-all werden nur solche Photos gesendet, die die <br />
536
- angegebene Anzahl von Tags aufweisen.<br />
537
- In Verbindung mit &#8212;no-tags werden auch solche Photos aufgelistet bei denen<br />
538
- nicht nur die Tags-Datei fehlt sondern bei denen sie existiert, aber zu wenige<br />
539
- Tags enthält.</p>
540
- <h3>&#8212;shuffle</h3>
541
- <p>Dieser Schalter dient, in Verbindung mit &#8212;send-all oder ähnlichen Befehlen, dazu,<br />
542
- nicht in der Reihenfolge wie sie durch das Dateisystem oder durch alphabetische<br />
543
- Sortierung vorgegeben ist, zu senden, sondern (ähnlich wie bei einem MP3-Player) <br />
544
- die Photos in zufälliger Reihenfolge zu senden.</p>
545
- <p>Die Schalter &#8212;ordered und &#8212;shuffle schließen sich gegenseitig aus. Falls beide<br />
546
- angegeben werden, ist nicht definiert, in welcher Reihenfolge die Abarbeitung<br />
547
- erfolgt.<br />
548
- <br />
549
- h3. &#8212;dont-send und &#8212;dont-log</p>
550
- <p>Diese beiden Optionen sind eigentlich nur für interne Unit-Tests der Programme<br />
551
- gedacht und sollten nicht für den produktiven Einsatz verwendet werden, bzw. <br />
552
- sind dort nicht sinnvoll.</p>
553
- <p>&#8212;dont-send sendet eine Datei nicht wirklich an die betreffende Site.</p>
554
- <p>&#8212;dont-log schreibt keinen Eintrag in die Sendeliste-Datei</p>
555
- <h2>Optionen im Konfigurations-File</h2>
556
- <h3>total_per_day</h3>
557
- <p>Wenn eine Site pro Tag nur eine bestimmte Anzahl von Uploads erlaubt oder wenn<br />
558
- du für eine Seite nur eine bestimme Anzahl von Photos pro Tag hochladen willst,<br />
559
- gibt es die Möglichkeit, im Konfigurationsfile bei dieser Site die Uploads pro<br />
560
- Kalendertag zu begrenzen. Dabei wird dann überprüft, wieviele Photos für diese<br />
561
- Site heute schon hochgeladen wurden und wenn die maximale Anzahl erreicht wurde,<br />
562
- wird nichts mehr hochgeladen. Diese Anzahl kann pro Site individuell gesetzt <br />
563
- werden.</p>
564
- <h2>Hoch- und Querformat</h2>
565
- <p>Einige Digitalkameras können erkennen, ob ein Bild im Hoch- oder Querformat <br />
566
- aufgenommmen wurde.<br />
567
- Falls dieses Programm erkennt, daß die Kamera ins Hochformat gedreht wurde, <br />
568
- so wird automatisch ein um 90 Grad nach links gedrehtes Bild erzeugt und dieses<br />
569
- hochgeladen. Du mußt ein Bild also nicht manuell drehen.<br />
570
- <br />
571
- Da die Photosites dies theoretisch auch anhand der Exif-Daten in<br />
572
- der Bilddatei erkennen und das Bild automatisch drehen könnten, wird es in Zukunft<br />
573
- auch einen Schalter geben, um die automatische Drehung im Programm auszuschalten,<br />
574
- da dies dann nicht notwendig ist.</p>
575
- <p>Die Photo-Sites, mit denen ich bis jetzt zu tun hatte, ignorieren dies aber <br />
576
- anscheinend bis jetzt.</p>
577
- <p>Um dieses Verhalten in der Digitalkamera einzuschalten, mußte ich bei der Canon<br />
578
- <span class="caps">EOS</span> 400 D die Einstellung &#8216;automatisch rotieren&#8217; aktivieren. Bei anderen Kameras<br />
579
- mag dies ähnlich sein. Bei der <span class="caps">EOS</span> 400 D kann man wählen, ob automatisch <br />
580
- für nur im Display der Kamera, im Display und auf dem PC oder überhaupt nicht <br />
581
- gedreht werden soll. Relevant ist hier die Einstellung &#8216;auf dem PC drehen&#8217;. Wenn<br />
582
- man zusätzlich noch &#8216;auf dem Display drehen&#8217; anwählt, heißt dies, daß zusätzlich<br />
583
- auch auf dem Display der Kamera das Bild gedreht angezeigt werden soll.</p>
584
- <p>Um zu testen, in welcher &#8216;orientation&#8217; ein Bild vorliegt kannst du das Programm<br />
585
- mit dem Schalter &#8216;&#8212;check-orientation Bild1.jpg Bild2.jpg ..&#8217; aufrufen.</p>
586
- <p>Falls ein Bild mit der falsche Orientation vorliegt, kannst du das Bild mit<br />
587
- dem Schalter &#8216;&#8212;rotate bild1.jpg [bild2.jpg ..]&#8217; um 90 Grad nach links drehen.<br />
588
- Achtung: dabei wird die Originaldatei mit dem gedrehten Bild überschrieben &#8211; falls<br />
589
- du das nicht willst, lege vorher eine Kopie an!</p>
590
- <p>Wenn deine Kamera nicht erkennen kann, ob ein Photo im Hochformat aufgenommen<br />
591
- wurde, dann drehe das Bild vor dem Hochladen mit dem Schalter &#8216;&#8212;rotate&#8217; oder<br />
592
- einen anderen Programm, welches Bilder drehen kann!</p>
593
- <p>Übrigens: Photos im Hochformat nimmt man folgendermaßen auf <img src="facy_boy.gif" title="Bild richtige Kamerahaltung bei Hochformat" alt="Bild richtige Kamerahaltung bei Hochformat" />,<br />
594
- und<br />
595
- nicht so wie man es von besonders cool wirkend wollenden Digicam-Knipsern des <br />
596
- öfteren sieht, mit der auslösenden Hand nach unten. Der Grund ist einfach der,<br />
597
- daß die Verwacklungsgefahr wesentlich größer ist, als wenn die auslösenden Hand<br />
598
- oben ist. <br />
599
- Stelle dir einfach vor, du würdest einen kurzen Stock mit den Fingern an deiner <br />
600
- Stirn fixieren der vor dem Gesicht herunterhängt. Jemand anderer kann nun mit <br />
601
- wesentlich geringerem Kraftaufwand den unteren Teil des Stocks bewegen, als <br />
602
- es bei dem oberen Ende möglich wäre &#8211; genauso ist es auch bei der Kamera.</p>
603
- <h2>Bisher realisierte Sites</h2>
604
- <p>Diese Programm arbeitet zum gegenwärtigen Zeitpunkt mit den im folgenden <br />
605
- beschriebenen Photo-Sites zusammen. Weitere sind geplant. Wenn du weitere Sites<br />
606
- realisiert haben möchtest, schreib mir!</p>
607
- <p>Ebenso bin ich auch bereit (exklusive) kommerzielle Entwicklung für weitere Sites <br />
608
- anzubieten.</p>
609
- <p>Meine eigenen Bilder scheinen bei Zoonar am besten anzukommen. Dort habe ich bereits<br />
610
- über 40 akzeptiert Bildere, danach kommt Fotolia mit immerhin schon vier Bildern.<br />
611
- Bei Photocase und Dreamstime ist es mir aber bis heute nicht gelungen, auch nur<br />
612
- ein einziges Bild unterzubringen (nein, an meinem Programm liegt das nicht :-) ).</p>
613
- <h3>fotolia.de</h3>
614
- <p>Homepage: <a href="http://www.fotolia.de">http://www.fotolia.de</a></p>
615
- <p>Bei fotolia.de lädst du deine Fotos hoch. Anschließend mußt du noch Stichworte<br />
616
- vergeben und zu jedem Bild angeben, mit welcher Lizenz dieses angeboten werden<br />
617
- soll. Erst dann werden deine Bilder begutachtet und entweder angenommen oder<br />
618
- abgelehnt.</p>
619
- <p>Unterstützte Dateitypen: <span class="caps">JPEG</span>, <span class="caps">SVG</span></p>
620
- <p>Site unterstützt Keywords in <span class="caps">IPTC</span>-Header: Ja</p>
621
- <p>Site unterstützt Hoch-/Querformat: Nein</p>
622
- <p>Übertragen der Keywords funktoniert: Ja</p>
623
- <h3>zoonar.de</h3>
624
- <p>Homepage: <a href="http://www.zoonar.de/">www.zoonar.de</a></p>
625
- <p>Bei zoonar.de wiederum läuft es so, daß du zuerst nur die Bilder hochlädst, dann <br />
626
- werden sie begutachtet; angenommen oder abgelehnt und erst wenn sie <br />
627
- angenommen wurden, kannst du Schlagworte vergeben. Dies hat natürlich den<br />
628
- Vorteil, daß man für abgelehnte Photos erst gar keine Schlagworte vergeben muß<br />
629
- (kann).<br />
630
- Mein Shop bei Zoonar ist übrigens unter <a href="http://www.zoonar.de/shop/thopre" title="Zoonar Shop thopre">Zoonar Shop thopre</a> zu <br />
631
- zu erreichen. Kauft fleißig bei mir ein! ;-)</p>
632
- <p>Unterstützte Dateitypen: ???</p>
633
- <p>Site unterstützt Keywords in <span class="caps">IPTC</span>-Header: Ja</p>
634
- <p>Site unterstützt Hoch-/Querformat: Nein</p>
635
- <p>Übertragen der Keywords funktoniert: Ja</p>
636
- <h3>photocase.de</h3>
637
- <p>Homepage: <a href="http://www.photocase.de/">www.photocase.de</a></p>
638
- <p>Bei photocase.de lädst du ebenfalls zuerst deine Photos hoch, diese werden<br />
639
- dann entweder angenommen oder abgelehnt. Bei angenommenen Bilder bearbeitest<br />
640
- du diese auf deren Seite weiter (eigentlich wie bei zoonar.de). Als nettes<br />
641
- Gimmick bei photocase kannst du bei deinen Photos sehen, an welchem Platz<br />
642
- sie sich aktuell in der Warteschlage der zu begutachtenden Photos befinden.</p>
643
- <p>Wie es dann weitergeht, kann ich noch sagen, da es mir bei photocase trotz<br />
644
- inzwischen 736 hochgeladenen Photos bis heute nicht gelungen ist, daß auch nur<br />
645
- ein einziges angenommen wurde, welches ich dann weiter bearbeiten könnte.</p>
646
- <p>Unterstützte Dateitypen: ???</p>
647
- <p>Site unterstützt Keywords in <span class="caps">IPTC</span>-Header: ? noch mal nachschauen! <span class="caps">TODO</span>:</p>
648
- <p>Site unterstützt Hoch-/Querformat: Nein</p>
649
- <p>Übertragen der Keywords funktoniert: ???</p>
650
- <h3>dreamstime.de</h3>
651
- <p>Homepage: http://www.fotolia.de <span class="caps">TODO</span>:</p>
652
- <p>Bei dreamstime funktioniert es ähnlich wie bei Zoonar. Man lädt zuerste einfach<br />
653
- nur die Bilder hoch und diese werden dann begutachtet und angenommen oder abgelehnt.</p>
654
- <p>Wie es dann weitergeht, kann ich noch sagen, da es mir bei dreamstime trotz<br />
655
- inzwischen 257 hochgeladenen Photos bis heute nicht gelungen ist, daß auch nur<br />
656
- ein einziges angenommen wurde, welches ich dann weiter bearbeiten könnte.</p>
657
- <p>Use the following form to upload your image. Only <span class="caps">JPG</span> files, <span class="caps">RGB</span>, at least 3 Megapixels, saved at the maximum quality will be accepted. Your image will be added to the queue and as soon as it is reviewed, you will receive an email of acceptance or rejection.</p>
658
- <p>Use our <span class="caps">FTP</span> upload for faster and easier submission of more images!</p>
659
- <p>The system supports automated <span class="caps">EXIF</span>/<span class="caps">IPTC</span> data retrieval. Use software programs to edit the <span class="caps">EXIF</span>/<span class="caps">IPTC</span> data before submitting it (i.e. File/ File info in Photoshop CS, or in Win XP right click the file, click Properties Summary tab).</p>
660
- <p>The <span class="caps">EXIF</span>/<span class="caps">IPTC</span> data should contain title, description (subject) and keywords. If no data is added or the system cannot retrieve it, the fields will be left empty. The files will be placed in your &#8220;Unfinished files&#8221; section, from where you will be able to continue the submission process by uploading a Model Release (if the image contains recognizable faces).</p>
661
- <p>Unterstützte Dateitypen: <span class="caps">JPG</span></p>
662
- <p>Site unterstützt Keywords in <span class="caps">IPTC</span>-Header: Ja</p>
663
- <p>Site unterstützt Hoch-/Querformat: ??? <span class="caps">TODO</span>:</p>
664
- <p>Übertragen der Keywords funktoniert: ???</p>
665
- <h3>bigstockphoto.com</h3>
666
- <p>Homepage: http://www.fotolia.de <span class="caps">TODO</span>:</p>
667
- <p>Bei Bigstockphoto lädst du auch zuerst deinen Photos hoch. Eine direkte <br />
668
- Übernahme der Keywords scheint bei mir nicht geklappt zu haben. Das muß<br />
669
- ich noch einmal überprüfen. <span class="caps">TODO</span>:</p>
670
- <p>Desweiteren ist dies die erste realisierte Photo-Site, bei der sich die Oberfläche<br />
671
- nicht auf deutschsprachig umschalten lassen kann. Dies bedeutet unter anderem,<br />
672
- daß die Keywords in englischer Sprache vorhanden sein müssen. Bisher bin ich <br />
673
- in meinem Programm nur von deutschsprachingen Keywords (in den .tags-Dateien) <br />
674
- ausgegangen. Falls du <strong>nur</strong> mit englischsprachigen Seiten/Oberflächen arbeiten<br />
675
- willst, kannst du natürlich einfach in den .tags Dateien englische Keywords<br />
676
- eingeben. Bei gemischtsprachiger Verwendung funktioniert dies aber nicht mehr.<br />
677
- Ich denke, ich werde einen Konfigurationsschalter einführen, der angibt, welche<br />
678
- Sprache und oder ggf. eine unterschiedliche .tags Datei zu verwenden ist.<br />
679
- Dies ist aber derzeit noch nicht implementiert.</p>
680
- <p>Außerdem will diese Site zwingend auch eine Bildbeschreibung haben.</p>
681
- <p>Diese Site ist funktionsfähig (bis auf diese Sprachproblematik), ich persönlich<br />
682
- werde die bei mir aber erstmal deaktivieren. U. a. auch weil es mir zu aufwendig<br />
683
- ist, auch noch englische Keywords auszusuchen und ein Beschreibung zu<br />
684
- jedem Photo zu schreiben.</p>
685
- <p>Eine andere Möglichkeit, die mir hier noch einfällt, wäre eine automatische<br />
686
- Übersetzung der Keywords.<br />
687
- Die automatische Übersetzung baue ich gerade ein &#8211; dies wird in einem<br />
688
- der nächsten Releases möglich sein. Du hast dann eine Textdatei, die<br />
689
- du mit jeweils dem deutschen Stichwort und der Übersetzung ins Englische (oder später noch weitere Sprachen) versorgst. Aus dieser Datei wird dann die<br />
690
- Übersetzung ermittelt. Da muß man übrigens aufpassen, weil manche Stichworte mehrdeuting sein können (z. B. &#8216;rasen&#8217;, je nachdem, ob es bei einem Bild<br />
691
- aus dem eigenen Garten oder einem Bild einer Autobahn erscheint). Hier<br />
692
- werde ich prüfen, ob gewisse andere, anzugebende, Stichworte ebenfalls<br />
693
- für das Bild vergeben wurden ( z.B. &#8220;Blumen&#8221; oder &#8220;Auto&#8221;) und dann das<br />
694
- passende englische Keyword auswählen.<br />
695
- <br />
696
- Unterstützte Dateitypen: ???</p>
697
- <p>Site unterstützt Keywords in <span class="caps">IPTC</span>-Header: ??? <span class="caps">TODO</span>:</p>
698
- <p>Site unterstützt Hoch-/Querformat: ??? <span class="caps">TODO</span>:</p>
699
- <p>Übertragen der Keywords funktoniert: ???</p>
700
- <h3>Panthermedia</h3>
701
- <p>Homepage: <a href="http://www.panthermedia.net/">www.panthermedia.net</a></p>
702
- <p>Bei Pantermedia lädst du deine Bilder per ftp hoch. Vor der Begutachtung mußt<br />
703
- du in deinem sogenannten ftp-Bereich bei Panthermedia zu jedem Bild noch diverse<br />
704
- Angaben in einem Formula ergänzen.<br />
705
- Leider auch wieder vorab, so daß die Arbeit ggf. umsonst war, falls das<br />
706
- Bild nicht angenommen wird. Ich finde, da sollte auch wieder eher z. B. an <br />
707
- Zoonar orientieren und diese Daten erst anfordern, falls ein Bild angenommen<br />
708
- wird &#8211; so wie es jetzt ist, klaut man wieder die Zeit des Users/Fotografen.</p>
709
- <p>Folgendes schreiben sie:</p>
710
- <p>Wichtig:<br />
711
- - Umlaute und Sonderzeichen im Dateinamen vermeiden<br />
712
- - Bitte nur <span class="caps">JPG</span>-Dateien (max. Größe: 12 MB) hochladen<br />
713
- - Bilder im <span class="caps">FTP</span>-Ordner nach spätestens 7 Tagen bearbeiten/entfernen<br />
714
- - Ihr verfügbarer <span class="caps">FTP</span>-Speicher: 150 MB (bitte nicht überschreiten)<br />
715
- - Bitte keine Verzeichnisse im <span class="caps">FTP</span>-Ordner anlegen<br />
716
- Unterstützte Dateitypen: <span class="caps">JPG</span>, <span class="caps">JPEG</span></p>
717
- <p>Site unterstützt Keywords in <span class="caps">IPTC</span>-Header: Ja</p>
718
- <p>Site unterstützt Hoch-/Querformat: ??? <span class="caps">TODO</span>:</p>
719
- <p>Übertragen der Keywords funktoniert: Ja</p>
720
- <h2>Paralleles Hochladen zu mehreren Sites gleichzeitig</h2>
721
- <p>Ich habe begonnen, eine Methode zu schreiben, die es ermöglicht, Bilder zu allen<br />
722
- Sites gleichzeitig hochzuladen.<br />
723
- Dies ist zwar natürlich möglich, obwohl es einiges mehr an Programmieraufwand<br />
724
- bedeutet, weil der ganze Ablauf mit mehreren Threads ganz anders organisiert<br />
725
- werden muß.</p>
726
- <p>Ich bin jedoch zum Schluß gekommen, daß es den Aufwand eigentlich nicht lohnt.<br />
727
- Begründung: Es wäre zwar wahrscheinlich möglich, in der gleichen Zeit ca. 5 mal<br />
728
- oder mehr Bilder gleichzeitig hochzuladen. Allerdings ist es damit ja nicht getan,<br />
729
- weil fast auf jeder Site noch einiges an Nachbearbeitung für jedes Bild nötig<br />
730
- ist. Bei meiner jetzigen Situation habe ich z.B. bei fotolia noch jede Menge<br />
731
- Photos in der Warteschlange, die ich mit Stichworten (als das Verschlagworten<br />
732
- mit diesem Programm noch nicht automatisch erledigt wurde), und Kategorien<br />
733
- versehen muß. Auch bei Photocase habe ich eine Warteschlagen von einigen Bildern,<br />
734
- die dort bestätigt oder abgelehnt werden müssen. Diese beiden Sachen werden um<br />
735
- keinen Deut schneller, selbst wenn ich fünfmal so viele Dateien in der gleichen<br />
736
- Zeit hochladen kann. Der Flaschenhals liegt also ganz wo anders.</p>
737
- <p>Ich werde deshalb den parallelen Ansatz erstmal wieder fallen lassen. Falls mir<br />
738
- allerdings jemand triftige Gründe für parallelen Upload nennen<br />
739
- kann, werde ich gerne noch mal darüber nachdenken.</p>
740
- <h2>File-Typen bei verschiedenen Photo-Sites</h2>
741
- <p>Verschiedene Sites akzeptieren verschiedene Dateitypen. Wenn du nur <span class="caps">JPG</span>-Dateien<br />
742
- verwendest, kann du den Rest des Abschnitts überspringen, da <span class="caps">JPG</span>-Dateien von <br />
743
- jeder (bisher realisierten) Site akzeptiert werden.</p>
744
- <p>Falls du jedoch mit .<span class="caps">TIFF</span> oder .<span class="caps">PSD</span> Dateien arbeiten willst, so ist zu beachten,<br />
745
- daß die eine Site vielleicht <span class="caps">JPG</span> + <span class="caps">TIFF</span> annimmt, während die andere <span class="caps">JPG</span> + <span class="caps">PSD</span><br />
746
- Dateien annimmt. Ich habe deshalb in die einzelnen Klassen die jeweils akzeptierten<br />
747
- Dateitypen eingebaut. Falls eine Site einen bestimmten Dateityp nicht akzeptiert,<br />
748
- wird eine Warnung ausgegeben und diese Datei nicht gesendet. Das heißt, eine<br />
749
- von dir hochzuladende .<span class="caps">PSD</span> Datei wird nur an diejenigen Sites gesendet, die<br />
750
- diese akzeptieren und verarbeiten können.</p>
751
- <p>Falls du der Meinung bist, daß ein Dateityp bei einer bestimmten Klasse von mir<br />
752
- noch vergessen wurde, teile es mir bitte per eMail mit! Ich werde es dann umgehend<br />
753
- für das nächste Release korrigieren.</p>
754
- <p>Bitte beachten: Falls nur zum Beispiel nur eine Site .<span class="caps">PSD</span>-Dateien akzeptiert, <br />
755
- dann wird nach dem Senden der Datei an diese Site, die Datei als an alle Sites<br />
756
- gesendet angesehen (denn sie wurde ja an alle Sites hochgeladen, die diesen Typ<br />
757
- akzeptieren und wird beispielsweise bei &#8212;list-done und &#8212;purge-done aufgelistet<br />
758
- und ggf. ins done-Directory verschoben. Falls eine Site nachträglich irgendwann<br />
759
- noch .<span class="caps">PSD</span> Dateien verarbeiten kann und du diese nachträglich noch senden willst,<br />
760
- kannst du die Dateien vom done-Directory ggf. wieder ins upload-Directory <br />
761
- verschieben und beim nächsten Senden wieder uploaden</p>
762
- <h2>Timeout beim Senden eines Files</h2>
763
- <p>Ich habe ein Timeout von 10 Minuten für das Übertragen einer Datei eingebaut. Das<br />
764
- heißt, falls eine Datei nach 10 Minuten immer noch nicht fertig übertragen wurde,<br />
765
- führt dies zu einem Abbruch der Verarbeitung (für diese Datei). Dies geschah,<br />
766
- um bei Problemen bei einer einzelnen Site nicht auch noch die anderen Übertragungen<br />
767
- zu behindern. Bei meiner Konfiguration dauerten auch die längsten Uploads nicht<br />
768
- mehr als 7 Minuten.</p>
769
- <p>Falls dieses Limit bei dir zu Problemen im normalen Betrieb führt, weil du <br />
770
- entweder eine zu langsame Leitung oder zu große Dateien überträgst, melde dich<br />
771
- bitte bei mir und ich werde mir vielleicht noch eine andere Lösung überlegen.</p>
772
- <p>Wenn du nicht davor zurückschreckst, den Programmcode selbst zu ändern, kannst<br />
773
- du diesen Wert auch in der Datei bin/multistockphoto (nach &#8216;timeout&#8217; suchen)<br />
774
- selbst ändern.</p>
775
- <h2>Neue Site zum Senden</h2>
776
- <p>Wenn ich eine neue Site aufnehme und alte Photos, die bereits an andere Sites<br />
777
- gesendet wurden, auch an diese neue Site senden will, kann ich theoretisch<br />
778
- alle Dateien aus dem &#8216;done&#8217; Ordner wieder in den &#8216;upload&#8217; Ordner verschieben.<br />
779
- Dort wird dann auch im Laufe der Zeit die alten Photos an die neue Site gesendet.</p>
780
- <p>Da es mir jedoch zu unuebersichtlich ist, die alten Dateien wieder komplett drin<br />
781
- zu haben, weil ich dann schlech überblicken kann, wo ich noch Tags ergänzen muß,<br />
782
- habe ich mir ein kleines Ruby-Skript geschrieben.</p>
783
- <pre>require 'rubygems'
784
- require 'multistockphoto'
785
- require 'fileutils'
786
- include FileUtils
787
-
788
- ROT_PREFIX = '_rot'
789
- PICTURE_FILES = /(.PNG|.JPG|.JPEG|.GIF|.EPS|.AI|.PSD|.PDF|.TIF|.TIFF)$/
790
-
791
- # erzeugt Dateiname einer tags Datei zu einer uebergebenen Photodatei,
792
- # egal, ob tags-Datei wirlich existiert oder nicht
793
- def tagsfilename(picturefilename)
794
- ext = File.extname(picturefilename)
795
- tagsfile = picturefilename.sub(ext,".tags")
796
- return tagsfile
797
- end
798
-
799
- # Test, ob zu einer Photodatei eine tags-Datei existiert
800
- def tagsfile?(picturefilename)
801
- return File.exist?(tagsfilename(picturefilename))
802
- end
803
-
804
- def pick_files(n)
805
- list = []
806
- count = 0
807
- allfiles = Dir.glob(File.join('done','*'))
808
- allfiles.each {|filename|
809
- next if File.basename(filename)[0,4] == ROT_PREFIX
810
- if filename.upcase =~ PICTURE_FILES
811
- list &lt;&lt; filename
812
- end
813
- }
814
- while count &lt; n do
815
- filename = list[rand(list.size)]
816
- photo = Photo.new(filename)
817
- puts filename
818
- puts "cp #{filename} upload/#{File.basename(filename)}"
819
- cp(filename,"upload/"+File.basename(filename))
820
- if tagsfile?(filename)
821
- puts "tags-file existiert auch"
822
- puts "cp #{tagsfilename(filename)} upload/#{File.basename(tagsfilename(filename))}"
823
- cp(tagsfilename(filename),"upload/"+File.basename(tagsfilename(filename)))
824
- end
825
- count += 1
826
- end
827
- end
828
-
829
- pick_files(2)
830
- </pre>
831
- <p>Dieses Skript kopiert aus dem &#8216;done&#8217; Ordner jeweils ein paar zufällig ausgewählte<br />
832
- Dateien in den <br />
833
- Upload-Ordner, wo sie entweder auch an die neue Site gesendet oder mit &#8216;purge-done&#8217;<br />
834
- nach dem Upload wieder in den done-Ordner verschoben werden.</p>
835
- <p>Die Zahl im &#8216;pick_files()&#8217; Aufruf am Schluß gibt die Anzahl der Files an (hier 2).<br />
836
- Diese Zahl kann je nach persönlichen Vorlieben variiert werden.</p>
837
- <p>Dies hat den Vorteil, daß nicht alle Photos auf einmal wieder im upload-Ordner <br />
838
- erscheinen, sondern nach und nach.</p>
839
- <p>Wer diesen Vorgang automatisieren will, kann einen Crontab-Eintrag (Linux/Unix)<br />
840
- folgender Art vornehmen:</p>
841
- <pre>0 12 * * * (cd /home/tp/multistockphoto; /usr/local/bin/ruby dejavu.rb)</pre>
842
- <h2>Forum</h2>
843
- <p><a href="http://groups.google.com/group/multistockphoto">http://groups.google.com/group/multistockphoto</a></p>
844
- <h2>How to submit patches</h2>
845
- <p>Read the <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/">8 steps for fixing other people&#8217;s code</a> and for section <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups">8b: Submit patch to Google Groups</a>, use the Google Group above.</p>
846
- <p><span class="caps">TODO</span> &#8211; pick <span class="caps">SVN</span> or Git instructions</p>
847
- <p>The trunk repository is <code>svn://rubyforge.org/var/svn/multistockphoto/trunk</code> for anonymous access.</p>
848
- <p><span class="caps">OOOORRRR</span></p>
849
- <p>You can fetch the source from either:</p>
850
- <ul>
851
- <li>rubyforge: <span class="caps">MISSING</span> IN <span class="caps">ACTION</span></li>
852
- </ul>
853
- <p><span class="caps">TODO</span> &#8211; You can not created a RubyForge project, OR have not run <code>rubyforge config</code><br />
854
- yet to refresh your local rubyforge data with this projects&#8217; id information.</p>
855
- <p>When you do this, this message will magically disappear!</p>
856
- <p>Or you can hack website/index.txt and make it all go away!!</p>
857
- <ul>
858
- <li>github: <a href="http://github.com/GITHUB_USERNAME/multistockphoto/tree/master">http://github.com/GITHUB_USERNAME/multistockphoto/tree/master</a></li>
859
- </ul>
860
- <pre>git clone git://github.com/GITHUB_USERNAME/multistockphoto.git</pre>
861
- <p><span class="caps">TODO</span> &#8211; add &#8220;github_username: username&#8221; to ~/.rubyforge/user-config.yml and newgem will reuse it for future projects.</p>
862
- <ul>
863
- <li>gitorious: <a href="git://gitorious.org/multistockphoto/mainline.git">git://gitorious.org/multistockphoto/mainline.git</a></li>
864
- </ul>
865
- <pre>git clone git://gitorious.org/multistockphoto/mainline.git</pre>
866
- <h3>Build and test instructions</h3>
867
- <pre>cd multistockphoto
868
- rake test
869
- rake install_gem</pre>
870
- <h2>License</h2>
871
- <p>This code is free to use under the terms of the <span class="caps">MIT</span> license.</p>
872
- <h2>Contact</h2>
873
- <p>Comments are welcome. Send an email to <a href="mailto:thopre@gmail.com">Thomas Preymesser</a> email <br />
874
- or via the <a href="http://groups.google.com/group/multistockphoto">forum</a></p>
875
- <p class="coda">
876
- <a href="mailto:thopre@gmail.com">Thomas Preymesser</a>, 30th July 2008<br>
877
- Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
878
- </p>
879
- </div>
880
-
881
- <!-- insert site tracking codes here, like Google Urchin -->
882
-
883
- </body>
884
- </html>