All Projects → shifr → imgwizard

shifr / imgwizard

Licence: MIT license
Simple server for On-the-Fly image processing in Go

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to imgwizard

Bimg
Go package for fast high-level image processing powered by libvips C library
Stars: ✭ 1,394 (+2633.33%)
Mutual labels:  crop, libvips
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 (+41333.33%)
Mutual labels:  crop, libvips
ruby-vips-lambda
AWS Lambda Layer for Ruby Libvips Gem
Stars: ✭ 34 (-33.33%)
Mutual labels:  libvips, vips
Lilliput
Resize images and animated GIFs in Go
Stars: ✭ 1,690 (+3213.73%)
Mutual labels:  crop, image-resizer
Krishi-Seva
A Farmer friendly app and website to give crop recommendations according to soil samples collected by ICAR and the weather forecast.
Stars: ✭ 22 (-56.86%)
Mutual labels:  crop
seam-carving
An implementation of the seam carving algorithm, designed to resize images while preventing distortion.
Stars: ✭ 30 (-41.18%)
Mutual labels:  image-resizer
ionic4-image-crop-upload
Ionic 4, Angular 7 and Cordova Crop and Upload Image
Stars: ✭ 16 (-68.63%)
Mutual labels:  crop
FunFilter
Freely painted area, the software will automatically add filter on its.
Stars: ✭ 15 (-70.59%)
Mutual labels:  crop
mpv-scripts
dynamic-crop.lua script for mpv player/lib.
Stars: ✭ 43 (-15.69%)
Mutual labels:  crop
cloudfront-image-proxy
Make CloudFront resize images "on the fly" via lambda@edge, cache it and persists it in S3.
Stars: ✭ 32 (-37.25%)
Mutual labels:  libvips
ngx-cropper
An Angular image plugin, includes upload, cropper, save to server.
Stars: ✭ 14 (-72.55%)
Mutual labels:  crop
vue-crop
[举个例子]https://codesandbox.io/s/910ro8ym9r [演示链接(戳我直达)]http://www.wwwwxy.top/html/blg/
Stars: ✭ 38 (-25.49%)
Mutual labels:  crop
Fast-Image-Resizer
Javafx application to resize images and add them into folders automatically.
Stars: ✭ 27 (-47.06%)
Mutual labels:  image-resizer
react-drop-n-crop
An opinionated implementation of react-dropzone and react-cropper
Stars: ✭ 17 (-66.67%)
Mutual labels:  crop
krop
A simple graphical tool to crop the pages of PDF files, written in Python/Qt
Stars: ✭ 88 (+72.55%)
Mutual labels:  crop
pdf-thumbnail
npm package to create the preview of a pdf file
Stars: ✭ 23 (-54.9%)
Mutual labels:  crop
ImageResizer.Plugins.EPiServerBlobReader
EPiServer Blob provider for ImageResizer.Net
Stars: ✭ 14 (-72.55%)
Mutual labels:  image-resizer
reImage
Fast image resizing backend based on libvips, mozjpeg and pngquant
Stars: ✭ 107 (+109.8%)
Mutual labels:  image-resizer
vipsdisp
Tiny libvips / gtk+4 image viewer
Stars: ✭ 56 (+9.8%)
Mutual labels:  libvips
vesdk-android-demo
VideoEditor SDK: A fully customizable video editor for your app.
Stars: ✭ 90 (+76.47%)
Mutual labels:  crop

ImgWizard - fast, light, easy to use

Build Status

Under active development. Please, use latest stable release.

What is it?

ImgWizard is a small server written in Go as faster alternative for thumbor

What it can do?

  • Fetch original image from:
    • local file system
    • remote media storage (using http)
    • microsoft azure (using SDK)
    • amazon s3 (using SDK)
  • Resize it
  • Crop it
  • Change quality
  • Cache resized image and fetch it on next request:
    • to file system
    • to Amazon S3
    • to Microsoft Azure Storage
  • Return WebP images if browser supports it

How to use?

http://{server}/{mark}/{storage}/{size}/{path_to_file}?{params}

  • server - imgwizard server addr
  • mark - mark for url (can be used for nginx proxying)
  • storage - "loc" (local file system) or "rem" (remote media) or "az" (azure storage)
  • size - "320x240" or "320x" or "x240"
  • path_to_file - path to original file (without "http://")
  • params - query parameters
Params:
  • crop - sides fixed when cropping (top, right, bottom, left)
  • q - result image quality (default set from command line "-q")
  • original ("true" or "false", default - "false") - return original image without processing and saving to cache
Example:

http://192.168.0.1:4444/images/rem/462x/media.google.com/uploads/images/1/test.jpg?crop=top,left&q=90

How to install?

Installing libvips

VIPS is a free image processing system. Compared to similar libraries, VIPS is fast and does not need much memory, see the Speed and Memory Use page. As well as JPEG, TIFF, PNG and WebP images, it also supports scientific formats like FITS, OpenEXR, Matlab, Analyze, PFM, Radiance, OpenSlide and DICOM (via libMagick). (© vips wiki)

Mac OS

$ brew tap homebrew/science

$ brew install vips --with-webp

Debian based

$ sudo apt-get install libvips-dev

RedHat

$ yum install libwebp-devel glib2-devel libpng-devel libxml2-devel libjpeg-devel

$ wget http://www.vips.ecs.soton.ac.uk/supported/7.38/vips-7.38.5.tar.gz

$ tar xvzf vips-7.38.5.tar.gz; cd vips-7.38.5

$ ./configure

$ make

$ make install

$ echo '/usr/local/lib' > /etc/ld.so.conf.d/libvips.conf

$ ldconfig -v

Installing imgwizard

  • go get github.com/shifr/imgwizard/cmd/imgwizard
  • export PATH=$PATH:$GOPATH/bin if you haven't done it before

Running imgwizard

  • imgwizard - run server without restrictions

You will see "ImgWizard started..."

Check imgwizard work after server start

Doesn't work?

Try to add PKG_CONFIG_PATH into environment:

export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/lib/pkgconfig"

Parameters on start?

DEBUG_ENABLED=1 WARNING_ENABLED=1 imgwizard -l localhost:9000 -c /tmp/my_cache_dir -thumb /tmp/404.jpg -d /v1/uploads,/v2/uploads -m media1.com,media2.com -s 100x100,480x,x200 -q 80 -mark imgw -nodes 127.0.0.1:8071,127.0.0.1:8072 -no-cache-key 123

ENV

  • DEBUG_ENABLED: show all debug messages
  • WARNING_ENABLED: show warning messages (when image not found/processed)

Flags

  • -l: Address to listen on (default - "localhost:8070")
  • -s3-b: Amazon S3 bucket name where cache will be located (for current wizard node).
  • -az: Microsoft Azure Storage container name where cache will be located (for current wizard node).
  • -c: directory for cached files (WORKS if "-s3-b" not specified, default - "/tmp/imgwizard")
  • -thumb: absolute path to default image if original not found (optional)
  • -m: comma separated list of allowed media (default - all enabled)
  • -s: comma separated list of allowed sizes (default - all enabled)
  • -d: comma separated list of directories to search original file
  • -q: resized image quality (default - 80)
  • -mark: mark (default - images)
  • -nodes: comma separated list of other imgwizard nodes for cache check (see nodes)
  • -no-cache-key: secret key that must be equal X-No-Cache value from request header to prevent reading from cache

Use Amazon S3 for caching OR as a storage for original image?

Then you should specify more ENV variables:

  • AWS_REGION: where to send requests. (Example: "us-west-2") //Required
  • AWS_ACCESS_KEY_ID: your access key id
  • AWS_SECRET_ACCESS_KEY: your secret access key

Use Azure Storage for caching OR as a storage for original image?

Then you should specify more ENV variables:

  • AZURE_ACCOUNT_NAME: your azure account name
  • AZURE_ACCOUNT_KEY: your key for SDK auth

Who are already using it?

Plans?

Yes, a lot.

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].