40 lines
No EOL
1.5 KiB
Text
40 lines
No EOL
1.5 KiB
Text
xquery version "3.0" encoding "UTF-8";
|
|
(:~ Generate thumbnails using http://code.google.com/p/thumbnailator/
|
|
: @author andy bunce
|
|
:)
|
|
module namespace thumbnails = 'expkg-zone58.image.thumbnailator';
|
|
declare default function namespace 'expkg-zone58.image.thumbnailator';
|
|
|
|
declare namespace File="java:java.io.File";
|
|
declare namespace Thumbnailator="java:net.coobird.thumbnailator.Thumbnailator";
|
|
declare namespace BufferedImageBuilder="java:net.coobird.thumbnailator.builders.BufferedImageBuilder";
|
|
declare namespace Builder="java:net.coobird.thumbnailator.Thumbnails$Builder";
|
|
(:
|
|
Thumbnails.of(new File("path/to/directory").listFiles())
|
|
.size(640, 480)
|
|
.outputFormat("jpg")
|
|
.toFiles(Rename.PREFIX_DOT_THUMBNAIL);
|
|
:)
|
|
(: declare function fromFilenames($file as xs:string){
|
|
let $a:=File:new(file:path-to-native($file))
|
|
return Builder:of(($a,$a))
|
|
}; :)
|
|
|
|
declare function sourceRegion($x as xs:integer,$y as xs:integer,
|
|
$width as xs:integer,$height as xs:integer){
|
|
Builder:sourceRegion(xs:int($x),xs:int($y),xs:int($width),xs:int($height))
|
|
};
|
|
|
|
declare function size($builder,$width as xs:int,$height as xs:int){
|
|
BufferedImageBuilder:size($builder,$width,$height)
|
|
};
|
|
|
|
declare function create-thumbnail($src as xs:string,
|
|
$dest as xs:string,
|
|
$width as xs:integer,
|
|
$height as xs:integer){
|
|
let $src:=File:new(file:resolve-path($src))
|
|
let $dest:=File:new(file:resolve-path($dest))
|
|
return Thumbnailator:createThumbnail($src,$dest,xs:int($width),xs:int($height))
|
|
};
|
|
|