Mittwoch, 5. Dezember 2012

Erste Erfahrungen mit zoom.it und zoom.it-API

Den Webmaster-Service von zoom.it (nicht verwechseln mit der Freeware zoomit) habe ich bereits vorgestellt. Der Dienst ist so interessant, dass ich weiter experimentiert habe. 





Immerhin löset er ein  enormes zeitliches Problem: Ich kann zwar Bilder auch über zoomify umwandeln und auf den Server laden, habe aber dann umständliche Prozeduren vor mir und muss meinen Server belegen (Einsatz von Picasa-Alben geht hier nicht).

Die Variante mit zoom.it ermöglichte mir bereits einige lang geplante Artikel umzusetzen. Vor allem im Bereich Kunst, Astronomie, und Foto-Dokumentation (regensburger-tagebuch) lagen viele Ideen bisher auf Eis.

In diesem Aufsatz möchte ich auf einige Aspekte von zoom.it hinweisen. Ich hoffe, dass andere Autoren dem Beispiel folgen.

Achtung, kein Löschen des Ergebnisses möglich.

Ist eine zoombare Version vom Dienst erstellt worden, kann sie - derzeit - nicht gelöscht werden. Dies sagt die FAQ. Wer die Ergebnis-URL also bereits publiziert hat, kann nicht mehr verhindern, dass das Bild aufgerufen wird. Auch wenn Sie das Ursprungsbild löschen, bleibt die zoom.it Version.

Aus der FAQ:
Can I remove an image from Zoom.it?
Not at this time. Fortunately, images aren't discoverable; the Zoom.it short URL is random, so unless you share it, it's unlikely anyone else will find it.

Beispiel:

Ich hatte testweise ein Bild von einem schlafenden Igel auf ein Picasa-Webalbum hochgeladen. Es war kurzzeitig unter folgender  Adresse aufrufbar:

https://lh4.googleusercontent.com/-Gb1UDlk0N0E\/ULzUSfHPgaI\/AAAAAAAAmCU/9GHaUgF_Th0/s2200/IMG_1286.JPG

Zoom.it renderte das Bild und gab folgende Adresse zum Ansehen des Ergebnisses, also der zoombaren Version, zurück:

http://zoom.it/jnOZ

Dann habe ich das Igel-Bild gelöscht. Die zoombare Variante ist aber noch da und wird da bleiben. Nur der dort eingebaute Link zum Originalbild führt in's Leere.





Daher Vorsicht:

Sollte es also ein Bild sein, das man später bereut (oder ein Screenshot, den man später nicht mehr zeigen will oder darf), dann sollte man sich vorher überlegen, ob man das Ergebnis (also die Ergebnis-URL auf zoom.it) bekannt macht.

Das gilt insbesondere für Webseiten-Screenshots mit eventuell rechtswidrigem Inhalt.



Auch der Link zur ursprünglichen Original-Bilddatei wird eingefroren und könnte eventuell verräterisch oder unangenehm sein.


Bild erneuern?

Aber wie kann man ein Bild dann erneuern, wenn unter derselben Adresse ein geändertes Bild hochgeladen wird? die FAQ gibt hier folgenden Tipp
Can I "refresh" or resubmit my image?
Not at this time. However, you can always submit a new URL for your image. The easiest way to get a new URL is to simply move your image.

Another way to get a new URL is to append a unique query string to the end of your current one, e.g. myimage.jpg?date=20101027. Zoom.it will treat that as a new image and create a new short URL for it.

Keine Größenbeschränkung!
Are there any limits on image or file size?

Nope, we'll accept any size, so give us what you got!
Wow. Das nenne ich einen Service.

Dementsprechend habe ich ein paar 30.000 Pixel breiten Bilder alter Meister aus dem googleartproject (gefunden via wikicommons, nicht direkt auf googleart abrufbar) rendern können. Der Prozess dauert aber mehrere Minuten.

Auch das SVG-Format wird unterstützt

Laut FAQ werden jpg, png und tiff-Grafiken unterstützt, ferner aber auch SVG-Grafiken.
What kind of image formats does Zoom.it support?

We rely on Windows to decode the images you give us, so we support what Windows supports. This includes the JPEG, PNG and TIFF formats, for example. It does not include Photoshop's PSD format.

As a bonus, however, we also support SVG images.
Eine Konzept für Fotografen und Webworker

Dass man das Originalbild löschen kann, ohne dass das zoombare Ergebnis gelöscht wird, kann man sich zum Vorteil machen. Hier ist ein Lösungsvorschlag:





1. Gigapixel-Bild hochladen,
  • entweder auf den eigenen Server, oder auf ein 
  • Picasa-Webalbum mit der Einstellung "Originalgröße behalten".


Dass bei Picasa bei Überschreitung der 800-Pixel-Grenze (bzw. bei Google-plus-Nutzern die 2000-Pixel-Grenze) das Bild auf den Speicherplatz angerechnet wird, stört nicht, denn das Bild wird später wieder gelöscht.

2. URL des Bildes notieren (was bei Picasa ein bisschen tricky ist) und bei zoom.it eingeben. Zoom.it erstellt eine zoombare Version und leitet auf die Ergebnisseite weiter

3. Das Originalbild wieder löschen.


Ergebnis:

Damit haben Sie eine zoombare Version, die bei Microsoft (auf zoom.it) gehostet wird. Diese kann  mit Hilfe des javascript-Snippets in eine Webseite eingebunden werden kann. Den Embed-Code findet man auf der Ergebnisseite auf zoom.it.

Weder Ihr eigener Webspace noch Ihr Picasa-Webspace wird belegt. Auch das war ein Grund, warum ich bisher keine Umsetzungen mit zoomify versuchte.

Die Einbindung geht allerdings eben nur mit Javascript! Will man ein zusätzliches Thumbnail-Bild für den Fall, dass der User kein Javascript eingeschaltet hat, muss man sich extra darum kümmern.

Ein Konzept für einen automatisierten Vorgang zeige ich weiter unten.


Kann man das Originalbild bei zoom.it hochladen?

Das wäre gut, weil man dann den Umweg über hochladen-und-löschen auf dem Server sparen könnte. Die FAQ sagt aber derzeit, Stand Dez 2012, dass diese Möglichkeit im Moment noch nicht besteht.


Erste Erfahrungen mit der API

Die API ist wirklich sehr einfach und dürfte daher auch für Anfänger ein Anreiz sein, ein kleines PHP-Skript zu basteln.

Mit dem Aufruf

http://api.zoom.it/v1/content/?url=


bewirken Sie, dass zoom.it
  • die URL aufsucht
  • eine zoombare Version erstellt
  • und in JSON oder XML-Format die Ergebnisdaten zurückgibt.

http://zoom.it/pages/api/quickstarts/http

Beispiel:

  1. Eingabe in das URL-Feld (oder Aufruf via PHP-HTTP):

    http://api.zoom.it/v1/content/?url=http://user-archiv.de/bilder/demo.jpg
  2. Rückgabe (im JSON-Format, voreingestellt):

    {"id":"KfVO","url":"http:\/\/user-archiv.de\/bilder\/demo.jpg","ready":false,"failed":false,"progress":0,"shareUrl":"http:\/\/zoom.it\/KfVO","embedHtml":"<script fvo.js="fvo.js" http:="http:" src="\" width="auto&amp;height=400px\" zoom.it="zoom.it"><\/script>"}

Aus dem String lassen sich die ID, die zoom.it-Aufruf-URL, der EMBED-Code und weitere Daten auslesen.

KfVO ist hierübrigens die so genannte ID dieses Bildes.

Damit ist schon mal klar, wo man das Ergebnisbild ansehen kann. Einfach die ID an zoom.it anhängen:
http://zoom.it/KfVO

Aufruf mittels ID

Man kann mittels API auch umgekehrt die Daten aufrufen, wenn man nur die ID (bzw. die Ergebnis-URL, aus der man die ID mühelos erkennt) kennt.

Der Aufruf lautet: 

api.zoom.it/v1/content/(hier die ID)

also in obigem Beispiel:
api.zoom.it/v1/content/KfVO
Und man erhält diesselben JSON-Daten wie oben.

Näheres: http://zoom.it/pages/api/reference/v1/content/get-by-id

Beispiele aus der FAQ (leicht abgewandelt):
http://api.zoom.it/v1/content/h
Returns 200 OK with JSON content info as the response body.

http://api.zoom.it/v1/content/99999999
Returns 404 Not Found with a plaintext error message as the response body.

http://api.zoom.it/v1/content/h?format=xml
Returns 200 OK with XML response info; the object has a 200 and a element.

http://api.zoom.it/v1/content/99999999?format=xml
Returns 200 OK with XML response info; the object has a 404 and an element.

Weitere Einzelheiten zur API (in englisch, aber verständlich):
http://www.zoom.it/pages/api/


Idee für ein PHP-Skript

  1. Nachsehen, ob auf dem eigenen Server ein Bild mit dem Namen  .../zoomit-tmp.jpg existiert und das Bild gegebenenfalls löschen.
  2. Bild hochladen und unter dem Namen ../zoomit-tmp.jpg abspeichern.
  3. Aufruf der api mit der entsprechenden URL (die praktischerweise immer diesselbe ist, allerdings später auch immer als Originalbild verlinkt wird)
  4. Wenn Response = 200 ok, ID auslesen
  5. Eventuell noch ein thumbnail erstellen (GDlib)
  6. Embed-Code basteln (könnte man auch auslesen, ist aber einfach, wenn man die ID kennt)
  7. Embed-Code evtl. mit einem DIV-Container verkleiden, der formatiert sein kann und eine class oder ID oder Beschreibung haben kann, evtl. auch verborgen formatiert. 
  8. Embed-Code bzw. DIV-Container evtl. noch mit thumbnail als Fallback versehen, thumbnail muss dann aber an endgültiger Stelle abgespeichert werden
  9. Fertigen Embed-Code (mittels htmlspecialchars) ausgeben, falls man Quelltext per Copy-n-Paste übernehmen will
  10. Fertigen Embed-Code zusätzlich in einem kleinen DIV-Container in echt ausgeben, damit man den Abschnitt kopieren und in ein Editor-Feld übertragen kann (funktioniert nicht bei jedem Editor).
  11. Originalbild wieder löschen oder  mit einem Platzhalterbild ersetzen
Statt auf dem eigenen Server kann man das Bild auch in einem temporären Album auf Picasa-Web abspeichern. Allerdings muss man sich zusätzlich in die API von Picasa einarbeiten und nach dem Hochladen die URL abfragen, die so ähnlich ist wie die URL des obigen Igel-Bildes.

  © Blogger template 'Fly Away' by Ourblogtemplates.com 2008

Back to TOP