Skip to content

JP2 (JPEG 2000 Part 1) validator and properties extractor. Jpylyzer was specifically created to check that a JP2 file really conforms to the format's specifications. Additionally jpylyzer is able to extract technical characteristics.

License

Notifications You must be signed in to change notification settings

DavidUnderdown/jpylyzer

 
 

Repository files navigation

#jpylyzer

About

Jpylyzer is a JP2 (JPEG 2000 Part 1) image validator and properties extractor. Its development was partially supported by the SCAPE Project. The SCAPE project is co-funded by the European Union under FP7 ICT-2009.4.1 (Grant Agreement number 270137).

Jpylyzer homepage

http://jpylyzer.openpreservation.org/

Cd Status

  • Build Status Travis-CI

  • Build Status OPF Jenkins

Downloads

Command line use

Usage

usage: jpylyzer.py [-h] [--verbose] [--recurse] [--wrapper] [--nullxml]
                   [--nopretty] [--version] jp2In [jp2In ...]

Positional arguments

jp2In : input JP2 image(s), may be one or more (whitespace-separated) path expressions; prefix wildcard (*) with backslash (\) in Linux..

Optional arguments

-h, --help : show this help message and exit;

-v, --version : show program's version number and exit;

--verbose : report test results in verbose format;

--recurse, -r : when analysing a directory, recurse into subdirectories (implies --wrapper)

--wrapper, -w : wrap the output for individual image(s) in 'results' XML element.

--nullxml : extract null-terminated XML content from XML and UUID boxes (doesn't affect validation)

--nopretty : suppress pretty-printing of XML output

Output

Output is directed to the standard output device (stdout).

Example

jpylyzer.py rubbish.jp2 > rubbish.xml

In the above example, output is redirected to the file 'rubbish.xml'.

Outline of output elements

  1. toolInfo: tool name (jpylyzer) + version.
  2. fileInfo: name, path, size and last modified time/date of input file.
  3. isValidJP2: True / False flag indicating whether file is valid JP2.
  4. tests: tree of test outcomes, expressed as True / False flags. A file is considered valid JP2 only if all tests return True. Tree follows JP2 box structure. By default only tests that returned False are reported, which results in an empty tests element for files that are valid JP2. Use the --verbose flag to get all test results.
  5. properties: tree of image properties. Follows JP2 box structure. Naming of properties follows ISO/IEC 15444-1 Annex I (JP2 file format syntax) and Annex A (Codestream syntax).

Debian packages build process

The Vagrant directory of this repo contains instructions on how to build Debian packages using VirtualBox and Vagrant. A Vagrantfile and provisioning scripts are included for a number of target platforms, which should make the process of building the packages fairly easy.

Steps in preparing a jpylyzer release

(Outline only, this section is under development and needs more detail!).

  1. Make changes to code
  2. Update version number in jpylyzer.py, setup.py and sonar-project.properties (do we really need last file?)
  3. In case of changes to command-line interface, update jpylyzer.pod file in Debian folder.
  4. Create new entry in changelog using dch -i; then manually update version number, and create list of changes.
  5. Update User Manual if necessary
  6. Commit all changes
  7. Add tag and commit
  8. Build Linux packages using instructions here
  9. Build Windows binaries
  10. Go to Latest Release and click on the Edit button
  11. Upload Linux/Windows packages to the release by dragging them to the Attach Binaries field at the bottom
  12. Website: update binVersion in _config.yml (this updates the links to all packages to the correct version)
  13. Website: write short release note
  14. Commit changes to website
  15. Spread the word!

About

JP2 (JPEG 2000 Part 1) validator and properties extractor. Jpylyzer was specifically created to check that a JP2 file really conforms to the format's specifications. Additionally jpylyzer is able to extract technical characteristics.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 86.7%
  • Ruby 9.7%
  • Batchfile 1.9%
  • Shell 1.6%
  • Makefile 0.1%