Skip to content

expkg-zone58/ex-thumbnailator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

expkg-zone58:image.thumbnailator

An XQuery interface to the image thumbnail generator library thumbnailator for BaseX 10+.

Features size, scale, caption, rotate, flip, colorize, watermark. More details at doc

Versions

  • thumbnailator 9 requires Basex 10+
  • uses thumbnailator 0.4.20

Usage

Images are input and output as xs:base64Binary items. Inputs typically come from fetch:binary which allows for file and http sources. Outputs may be saved with file:write-binary or db:store

Simple

Create a thumbnail of given size

import module namespace t="expkg-zone58:image.thumbnailator";

fetch:binary("http://images.metmuseum.org/CRDImages/ep/original/DT46.jpg")
=>t:size(80)

or scale to a fraction of the original

import module namespace t="expkg-zone58:image.thumbnailator";

fetch:binary("file:///Z:/recordings/radio/Book%20of%20the%20Week/image.png")
=>t:scale(0.25)

Tasks

This function takes an XML description of the operations to apply to generate the thumbnail.

import module namespace t="expkg-zone58:image.thumbnailator";
declare variable $watermark:="C:\Users\andy\git\ex-thumbnailator\src\test\resources\icon.jpg";

let $task:=
<thumbnail>
    <size width="100" height="100"/>
    <filters>             
        <colorize color="green" alpha=".5"/>      
        <caption position="CENTER">Some Text here</caption>
        <rotate angle="15"/>
        <canvas height="500" width="500" position="TOP_LEFT" color="black"/> 
        <watermark src="{$watermark}" alpha=".5"  position="TOP_LEFT"/>  
    </filters>         
</thumbnail>

return fetch:binary("http://images.metmuseum.org/CRDImages/ep/original/DT46.jpg")
=>t:task($task)

The schema for this XML is available at task.xsd

Installation

The library is packaged in the EXpath xar format with the thumbnailator jar included. See releases for installation instructions.

Tests

test.xqm script uses the BaseX Unit module

build

License

  • ex-thumbnailator Copyright (c) 2013-2024, Andy Bunce. (Apache 2 License).
  • thumbnailator Copyright (c) Chris Kroells (MIT License).