diff --git a/.classpath b/.classpath index ff61764..4967d10 100644 --- a/.classpath +++ b/.classpath @@ -1,12 +1,8 @@ - - - - - - + + diff --git a/dist/doc/thumbnailator.xqm.xml b/dist/doc/thumbnailator.xqm.xml index 5e353f4..5367beb 100644 --- a/dist/doc/thumbnailator.xqm.xml +++ b/dist/doc/thumbnailator.xqm.xml @@ -1,6 +1,6 @@ - 2017-04-29T22:28:45.705+01:00 + 2017-11-24T23:26:38.524Z 1.1 diff --git a/dist/thumbnailator-6.0.2.xar b/dist/thumbnailator-6.0.2.xar new file mode 100644 index 0000000..5a757e3 Binary files /dev/null and b/dist/thumbnailator-6.0.2.xar differ diff --git a/lib/BaseX90-20171123.jar b/lib/BaseX90-20171123.jar new file mode 100644 index 0000000..a3560cf Binary files /dev/null and b/lib/BaseX90-20171123.jar differ diff --git a/makejar.jardesc b/makejar.jardesc index 76b73bd..1189940 100644 --- a/makejar.jardesc +++ b/makejar.jardesc @@ -1,6 +1,6 @@ - + diff --git a/package.xml b/package.xml index 904a132..dbffefd 100644 --- a/package.xml +++ b/package.xml @@ -49,5 +49,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/readme.md b/readme.md index e65641b..e750f9e 100644 --- a/readme.md +++ b/readme.md @@ -1,9 +1,11 @@ # expkg-zone58:image.thumbnailator An XQuery interface to the image thumbnail generator library -[thumbnailator](https://github.com/coobird/thumbnailator) for BaseX 8.6.2+. +[thumbnailator](https://github.com/coobird/thumbnailator) for BaseX 9+. Features size, scale, caption, rotate, flip, colorize, watermark. More details at [doc](doc/readme.md) +## Versions +* For Basex 9+ use thumbnailator 6.0.2+ ## Usage @@ -61,7 +63,7 @@ the thumbnailator jar included. See [releases](../../releases) for installation ## License -* ex-thumbnailator Copyright (c) 2016-2017, Andy Bunce. (Apache 2 License). +* ex-thumbnailator Copyright (c) 2013-2017, Andy Bunce. (Apache 2 License). * thumbnailator Copyright (c) Chris Kroells (MIT License). diff --git a/src/java/org/expkgzone58/image/Thumbs.java b/src/java/org/expkgzone58/image/Thumbs.java index 6595e7c..81e8a3c 100644 --- a/src/java/org/expkgzone58/image/Thumbs.java +++ b/src/java/org/expkgzone58/image/Thumbs.java @@ -18,7 +18,7 @@ import org.basex.io.IOContent; import org.basex.query.QueryException; import org.basex.query.QueryModule; //import org.basex.query.func.fn.FnTrace; -import org.basex.query.value.item.B64Stream; +import org.basex.query.value.item.B64Lazy; import org.basex.query.value.item.Dbl; import org.basex.query.value.item.Int; import org.basex.query.value.node.ANode; @@ -51,7 +51,7 @@ import net.coobird.thumbnailator.filters.ImageFilter; */ public class Thumbs extends QueryModule{ - public B64Stream size(final B64Stream inputStream, final int width, final int height) + public B64Lazy size(final B64Lazy inputStream, final int width, final int height) throws IOException, QueryException { ByteArrayInputStream is = new ByteArrayInputStream(inputStream.binary(null)); ByteArrayOutputStream os = new ByteArrayOutputStream(); @@ -59,10 +59,10 @@ public class Thumbs extends QueryModule{ builder.size(width, height); StreamThumbnailTask task = new StreamThumbnailTask(builder.build(), is, os); Thumbnailator.createThumbnail(task); - return new B64Stream(new IOContent(os.toByteArray()), IOERR_X); + return new B64Lazy(new IOContent(os.toByteArray()), IOERR_X); } - public B64Stream scale(final B64Stream inputStream, + public B64Lazy scale(final B64Lazy inputStream, final double xscale, final double yscale) throws IOException, QueryException { ByteArrayInputStream is = new ByteArrayInputStream(inputStream.binary(null)); @@ -71,17 +71,17 @@ public class Thumbs extends QueryModule{ builder.scale(xscale, yscale); StreamThumbnailTask task = new StreamThumbnailTask(builder.build(), is, os); Thumbnailator.createThumbnail(task); - return new B64Stream(new IOContent(os.toByteArray()), IOERR_X); + return new B64Lazy(new IOContent(os.toByteArray()), IOERR_X); } - public B64Stream task(final B64Stream inputStream, final ANode thumbnail) + public B64Lazy task(final B64Lazy inputStream, final ANode thumbnail) throws IOException, QueryException { ByteArrayInputStream is = new ByteArrayInputStream(inputStream.binary(null)); ByteArrayOutputStream os = new ByteArrayOutputStream(); ThumbnailParameter param = fromNode(thumbnail); StreamThumbnailTask task = new StreamThumbnailTask(param, is, os); Thumbnailator.createThumbnail(task); - return new B64Stream(new IOContent(os.toByteArray()), IOERR_X); + return new B64Lazy(new IOContent(os.toByteArray()), IOERR_X); } // build parameters from XML diff --git a/src/main/basex.xml b/src/main/basex.xml index 008a15b..3599837 100644 --- a/src/main/basex.xml +++ b/src/main/basex.xml @@ -1,5 +1,5 @@ - thumbhelper-5.0.11.jar + thumbhelper-6.0.0.jar thumbnailator-0.4.8.jar org.expkgzone58.image.Thumbs diff --git a/src/main/content/thumbhelper-5.0.11.jar b/src/main/content/thumbhelper-5.0.11.jar deleted file mode 100644 index a7e9ecd..0000000 Binary files a/src/main/content/thumbhelper-5.0.11.jar and /dev/null differ diff --git a/src/main/content/thumbhelper-6.0.0.jar b/src/main/content/thumbhelper-6.0.0.jar new file mode 100644 index 0000000..7a3cabe Binary files /dev/null and b/src/main/content/thumbhelper-6.0.0.jar differ diff --git a/src/main/expath-pkg.xml b/src/main/expath-pkg.xml index e68905a..6f04a83 100644 --- a/src/main/expath-pkg.xml +++ b/src/main/expath-pkg.xml @@ -1,8 +1,8 @@ + abbrev="thumbnailator" version="6.0.2" spec="1.0"> An XQuery interface to thumbnailator the thumbnail generator library. - + expkg-zone58:image.thumbnailator thumbnailator.xqm diff --git a/src/test/inset.xq b/src/test/inset.xq new file mode 100644 index 0000000..87f550e --- /dev/null +++ b/src/test/inset.xq @@ -0,0 +1,37 @@ +(:~ + :examples of inset use +:) +import module namespace t="expkg-zone58:image.thumbnailator"; + +declare variable $watermark:=local:path("resources\icon.gif"); +declare variable $src:=local:path("resources/A34283.jpg"); + +declare function local:path($name){ + file:resolve-path($name,file:base-dir()) +}; +declare function local:save($data as xs:base64Binary,$filename as xs:string) +{ + file:write-binary(local:path($filename),$data) +}; + + +let $img:= fetch:binary($src) + +let $task:= + + + + + DRAFT + + + Caption insets = 10 + + BOTTOM_LEFT -3 + + + + +return t:task($img,$task) => local:save("resources/" || "inset.gif") diff --git a/src/test/resources/inset.gif b/src/test/resources/inset.gif new file mode 100644 index 0000000..836d67d Binary files /dev/null and b/src/test/resources/inset.gif differ diff --git a/tools/buildx.xqm b/tools/buildx.xqm index 4d88ee1..12b283c 100644 --- a/tools/buildx.xqm +++ b/tools/buildx.xqm @@ -32,7 +32,7 @@ declare %updating function write-xqdoc($path,$src,$dest){ case "application/xquery" return file:write( fn:resolve-uri($path || ".xml",$dest), - inspect:xqdoc($url) + inspect:xqdoc($url) ) default return ()