0.0.3 • Published 9 months ago

gvips v0.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

GVIPS: libvips for GJS

This is a GJS binding for libvips. It allows running the highly performant image processing library under GJS.

Note: This is a work in progress. It is not ready for use.

Installation

From NPM

npm install gvips

From Source

  • libvips and make sure you also have the development files (e.g. libvips-dev on Debian/Ubuntu or vips-devel on Fedora/CentOS).
  • GJS
  • Meson and Ninja
  • Yarn

Building

The build system relies on Meson (and ninja) and Yarn. By building GVIPS, you also build Gvips-Ext, which is a thin wrapper that provides functions that are not exposed by libvips' GObject Introspection data.

meson setup build
ninja -C build
ninja yarn_build -C build

Usage

To use the library, do:

import Vips from "gi://Vips";
import { initWrappers } from "gvips/dist/wrapper";
import { vips_image_write_to_file } from "gvips/dist/image";

// convenience wrappers for vips operations
initWrappers();

const image = Vips.Image.black(100, 100);
const [output, meta] = image.autorot({
  output: ["angle", "flip"],
});

console.log(
  "image was rotated " + meta.angle + " degrees. flipped: " + meta.flip,
);

vips_image_write_to_file(output, "test.png");

or you can let gvips initialise the wrappers for you by directly importing from gvips.

import Vips from "gvips";

const image = Vips.Image.black(100, 100);
// ...

Testing your code

You can use the file test/main.ts to write test code, then run the following file to compile and execute the code.

yarn test

License

This project is licensed under the MIT Licence - see the LICENCE file for details.

0.0.3

9 months ago

0.0.2

9 months ago

0.0.1

9 months ago