All Projects → monostream → Tifig

monostream / Tifig

Licence: apache-2.0
A fast HEIF image converter aimed at thumbnailing

Projects that are alternatives of or similar to Tifig

Sharp
High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, AVIF and TIFF images. Uses the libvips library.
Stars: ✭ 21,131 (+6024.93%)
Mutual labels:  image, jpeg, libvips, performance
Image Optimizer
Easily optimize images using PHP
Stars: ✭ 2,127 (+516.52%)
Mutual labels:  image, jpeg, performance
Imgproxy
Fast and secure standalone server for resizing and converting remote images
Stars: ✭ 5,688 (+1548.7%)
Mutual labels:  image, jpeg, libvips
Skrop
Image transformation service using libvips, based on Skipper.
Stars: ✭ 71 (-79.42%)
Mutual labels:  image, jpeg, libvips
Imaginary
Fast, simple, scalable, Docker-ready HTTP microservice for high-level image processing
Stars: ✭ 4,107 (+1090.43%)
Mutual labels:  image, jpeg, libvips
Bimg
Go package for fast high-level image processing powered by libvips C library
Stars: ✭ 1,394 (+304.06%)
Mutual labels:  image, jpeg, libvips
Doctron
Docker-powered html convert to pdf(html2pdf), html to image(html2image like jpeg,png),which using chrome(golang) kernel, add watermarks to pdf, convert pdf to images etc.
Stars: ✭ 141 (-59.13%)
Mutual labels:  image, jpeg
Grunt Image
Optimize PNG, JPEG, GIF, SVG images with grunt task.
Stars: ✭ 201 (-41.74%)
Mutual labels:  image, jpeg
Gulp Image
Optimize PNG, JPEG, GIF, SVG images with gulp task.
Stars: ✭ 213 (-38.26%)
Mutual labels:  image, jpeg
Ultimatepp
U++ is a C++ cross-platform rapid application development framework focused on programmer's productivity. It includes a set of libraries (GUI, SQL, Network etc.), and integrated development environment (TheIDE).
Stars: ✭ 237 (-31.3%)
Mutual labels:  image, performance
Lilliput
Resize images and animated GIFs in Go
Stars: ✭ 1,690 (+389.86%)
Mutual labels:  image, jpeg
React Worker Image
React component to fetch image resources via web workers 🤖🤖
Stars: ✭ 226 (-34.49%)
Mutual labels:  image, performance
Ffmpeg Video Slideshow Scripts
Shell scripts to create video slideshows using images and videos
Stars: ✭ 248 (-28.12%)
Mutual labels:  image, ffmpeg
Image Optimize Command
Easily optimize images using WP CLI
Stars: ✭ 138 (-60%)
Mutual labels:  image, performance
Hrconvert2
A self-hosted, drag-and-drop, & nosql file conversion server that supports 62x file formats.
Stars: ✭ 132 (-61.74%)
Mutual labels:  image, jpeg
Bbwebimage
A high performance Swift library for downloading, caching and editing web images asynchronously.
Stars: ✭ 128 (-62.9%)
Mutual labels:  image, jpeg
Medium Zoom
🔎🖼 A JavaScript library for zooming images like Medium
Stars: ✭ 2,799 (+711.3%)
Mutual labels:  image, performance
wrender
Image compression and transformation reverse-proxy for Express apps
Stars: ✭ 14 (-95.94%)
Mutual labels:  jpeg, libvips
imagor
Fast, Docker-ready image processing server in Go and libvips
Stars: ✭ 2,276 (+559.71%)
Mutual labels:  jpeg, libvips
Selene
A C++17 image representation, processing and I/O library.
Stars: ✭ 266 (-22.9%)
Mutual labels:  image, jpeg

tifig

Converts HEIF images created on iOS 11 devices as fast as humanly possible.

NOTE: While we do not have the time to actively maintain tifig anymore, it is functional at a very alpha state. We are open to new maintainers taking the lead.

Build Dependencies

  • libvips >= 8.6
  • libavcodec >= 3.1 (ffmpeg)
  • libswscale >= 3.1 (ffmpeg)

macOS aka OSX

This one-liner should get you going:

brew install cmake vips ffmpeg pkg-config

Linux

First of all, to just try out tifig, the easiest way is to use our static builds.

However, if you do want to build from source, verify carefully that the minimally required versions are actually shipped and installed with your distro and release.

For ffmpeg, check the output of:

ffmpeg -version

Assuming you are using a ubuntu based system, this should help if your versions of 'libavcodec' and 'libswscale' is too old:

sudo add-apt-repository -y ppa:jonathonf/ffmpeg-3
sudo apt-get update
sudo apt-get install libavcodec-dev libswscale-dev

Since tifig requires quite a modern version of libvips, building from source is probably required. Follow the instructions here .

Again on ubuntu, something like this should do the trick:

sudo apt-get install build-essential pkg-config libglib2.0-dev libexpat1-dev libjpeg-dev libexif-dev libpng-dev libtiff-dev
wget https://github.com/jcupitt/libvips/releases/download/v8.6.1/vips-8.6.1.tar.gz
tar xzf vips-8.6.1.tar.gz
cd vips-8.6.1
./configure
make
sudo make install

Build

git clone --recursive https://github.com/monostream/tifig.git
mkdir tifig/build && cd tifig/build
cmake ..
make

Usage

Convert the fullsize picture:

# tifig -v -p image.heic output.jpg
Grid is 4032x3024 pixels in tiles 8x6
Export & decode HEVC: 97ms
Saving image: 55ms
Total Time: 160ms

Create a thumbnail with max width of 800px:

# tifig -v -p --width 800 image.heic thumbnail.jpg
Grid is 4032x3024 pixels in tiles 8x6
Export & decode HEVC: 113ms
Saving image: 100ms
Total Time: 243ms

Create a cropped thumbnail to match size exactly:

# tifig -v -p --crop --width 400 --height 400 1_portrait.heic thumbnail.jpg
Grid is 4032x3024 pixels in tiles 8x6
Export & decode HEVC: 105ms
Saving image: 125ms
Total Time: 234ms

When a size smaller or equal to 240x240 is requested, tifig will automatically use the embedded thumbnail.

Installing

We release tifig as static x86_64 binary that should work on any linux without installing dependencies. The only requirement is glibc with a minimal version of 2.14. Just copy the binary to /usr/local/bin or wherever you want to.

ToDo's

  • Testing
  • Create independant static binary
  • Keep exif metadata in coverted images
  • Cleanup and optimizing
  • Replace Nokia library with DigiDNAs ISOBMFF parser
  • Carry over color profiles
  • Support single image HEIC
  • Improve thumbnailing

Software Used / Libraries

Suggestions for improvements and Pull Requests highly welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].