2016-04-20 12 views
0

Ich kann nicht herausfinden, wie man mehr Informationen in einem Lauf bekommt.Wie bekomme ich mehr Informationen über ein in eXist-db gespeichertes Bild?

Zum Beispiel möchte ich einige grundlegende Mathematik für spätere Operationen (in der Regel Skalierung) tun.

Dies:

import module namespace image = "http://exist-db.org/xquery/image"; 

let $img := util:binary-doc('/db/apps/tested-bunny/data/deepspace.jpg') 
let $img-width := image:get-width($img) 
let $img-height := image:get-height($img) 
return 
    ($img-width, $img-height) 

... gibt nur die Breite.

Dies:

import module namespace image = "http://exist-db.org/xquery/image"; 

let $img := util:binary-doc('/db/apps/tested-bunny/data/deepspace.jpg') 
let $img-width := image:get-width($img) 
return 
    ($img-width, image:get-metadata($img, true())) 

... gibt nur die Breite.

Dies:

import module namespace image = "http://exist-db.org/xquery/image"; 

let $img := util:binary-doc('/db/apps/tested-bunny/data/deepspace.jpg') 
return 
    (image:get-width($img) * image:get-height($img)) 

... gibt nichts zurück.

Ist die Funktion irgendwie eingeschränkt, um mehr Informationen auf einmal zu erhalten?

+0

Ich habe gerade Ihren ersten Beispielcode mit einem JPG und einem GIF getestet und der Code gab sowohl Breite als auch Höhe zurück. Ich benutze eine neuere Version von 3.0RC1. Was ist deine eXist-Version? – joewiz

+0

Das gleiche, 3.0.RC1. Nur mit einem anderen Bild getestet, immer noch das Gleiche. Wenn ich eine Information zweimal verwende, wird sie zweimal zurückgegeben. Wenn ich sie mische, wird nur die erste zurückgegeben. –

+0

Whoops, wenn man 'util: binary-doc ('/ db/apps/getestet-bunny/data/dev.jpg')' direkt anstelle der Variablen verwendet, funktioniert es. Wirklich verwirrend. Da ist etwas wirklich Seltsames. –

Antwort

0

Wie @joewiz gefunden, ist dies ein Fehler in der Version 3.0.RC1 von eXist-db. Im neuesten nächtlichen Build funktioniert es. Gelöst.