github.com/jcupitt/buil...
and it includes the libvips dylib. It would need updating, but maybe there's something useful in there?
github.com/jcupitt/buil...
and it includes the libvips dylib. It would need updating, but maybe there's something useful in there?
I sometimes start talks with "was anyone here born before 1989?" and there have been a few times where no one has raised a hand haha.
I sometimes start talks with "was anyone here born before 1989?" and there have been a few times where no one has raised a hand haha.
- the scripting language (dynamic Haskell with classes) is also pure, functional and lazy
- the GUI is built with gtk4, so it all renders on your GPU for smooth 60fps animations
- the scripting language (dynamic Haskell with classes) is also pure, functional and lazy
- the GUI is built with gtk4, so it all renders on your GPU for smooth 60fps animations
You shouldn't get libvips crashes, it's used on huge image proxies generating many millions of images an hour. I'd think a bug in the go binding (which we were not involved in) is more likely.
You shouldn't get libvips crashes, it's used on huge image proxies generating many millions of images an hour. I'd think a bug in the go binding (which we were not involved in) is more likely.
github.com/libvips/pyvi...
But benchmarking is difficult. Before doing anything, you need a small program that accurately represents your expected use case.
github.com/libvips/pyvi...
But benchmarking is difficult. Before doing anything, you need a small program that accurately represents your expected use case.
github.com/kleisauke/li...
so current stable libvips compiled to (almost) every combination of glibc / musl, x64 / arm32 / arm64, and linux / windows / macos.
github.com/kleisauke/li...
so current stable libvips compiled to (almost) every combination of glibc / musl, x64 / arm32 / arm64, and linux / windows / macos.
github.com/libvips/libv...
The rest of the C++ binding is mostly just convenience functions, overloads, stuff like that.
github.com/libvips/libv...
The rest of the C++ binding is mostly just convenience functions, overloads, stuff like that.
www.libvips.org/API/current/...
tldr: Don't bind the main C API, bind the GObject API instead. The C++ binding might be a useful starting point -- it's only about 500 lines of code.
www.libvips.org/API/current/...
tldr: Don't bind the main C API, bind the GObject API instead. The C++ binding might be a useful starting point -- it's only about 500 lines of code.
$ /usr/bin/time -f %M:%e vipsthumbnail big.jpg --size 256x256 -o x.jpg
58180:0.20
$ /usr/bin/time -f %M:%e convert big.jpg -resize 256x256 x.jpg
717356:1.39
The output is peak memory use in kb, elapsed time in seconds. This is a 10k x 10k pixel JPG.
www.southampton.ac.uk/~km2/papers/...
www.southampton.ac.uk/~km2/papers/...
They use the same lanczos3 resizing kernel, so quality should be identical.
They use the same lanczos3 resizing kernel, so quality should be identical.