Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

converjon

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

converjon

An on-the-fly image conversion service

  • 1.5.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

Converjon

An on-the-fly image conversion service

Dependencies (apart from node modules)

  • ImageMagick
    • use the Q8 version to save memory
    • however, Q16 (the default one) is required to support PNG image output
  • ExifTool (at least version 9)
  • node.js
  • NPM (usually included in node.js)

Installation

  • download or clone the repository
  • change into the directory of the repository
  • npm install -d to install the dependency libs
  • set your environment (production/development/testing) via the NODE_ENV environment variable (defaults to "development")
  • start with npm start

There are some optional OS specific start/stop scripts under utils/os_helpers/ which you can also use.

Configuration

###Server

  • port: port for the server to listen on

###Logging

  • errorLog: Absolute path to error log file.
  • accessLog: Absolute path to access log file.
  • error (boolean): wether to log errors at all.
  • debug (boolean): wether to log debug output (this may be A LOT)
  • access (boolean): wether to log client requests (Apache style)

###Constraints

Image requests can be constrained within configurable boundaries. This can be done globally and for regular expressions matching source URLs. If a request exceeds these limits, an HTTP 400 is returned with a notice, what went wrong.

Currently there are 4 possible constraints:

  • width
  • height
  • quality (meaning JPEG quality)
  • color (meaning GIF color depth)

Each of these values can have a max and a min property. Both are optional. You can also specify just one boundary.

Example from config/default.json:

{
//...
    "constraints": {
        "global": {
            "width": {
                "min": 1,
                "max": 2000
            },
            "height": {
                "min": 1,
                "max": 2000
            },
            "quality": {
                "min": 1,
                "max": 95
            },
            "colors": {
                "min": 2,
                "max": 256
            }
        },
        "url": {
            "^.+:\/\/localhost": {
                "quality": {
                    "max": 100,
                    "min": 20
                }
            }
        }
    }
// ...
}

This example includes some global contraints that apply to every request and some overridden contraints for request with aource URLs from localhost.

Usage

Example image URL: http://example.org/image.jpg

To get the image through Converjon, put the original URL into the request as a URL encoded parameter:

http://localhost/?url=%20http%3A%2F%2Fexample.org%2Fimage.jpg

More options are available as GET parameters. All parameters need to be URL encoded.

Several example are available on the /demo page which is enabled in "testing" and "development" environments.

###Changing size

You can either supply a width, height or both. If you only supply one dimension, the other one will be derived from the original images aspect ratio.

If you supply both values, the image will be cropped to the new aspect ratio, if necessary, and is then resized to the requested pixel dimensions.

###Area of Interest

By default images are cropped from the center of the original. You can specify an "area of interest" with the aoi parameter. The AOI is a rectangle in the folling format:

offsetX,offsetY,width,height

The AOI can also be embedded in the original images metadata via EXIF or IPTC. The name of this metadata field can be configured and defaults to aoi. If the images metadata specifies an AOI, it is preferre over the AOI in the GET parameter.

If an AOI is set, croppping will ensure, that the area is always preserved.

###Image Format

With the mime parameter you can change the format of the image. Supported types are:

  • image/jpeg
  • image/png
  • image/gif

###Quality

The quality parameter sets the JPEG quality value. It ranges from 1 to 100 (integer).

This parameter is ignored, if the requested mime type is not image/jpeg.

###Color Palette

The colors parameter sets the number of colors for GIF compression. It ranges from 2 to 256 (integer).

Testing

  • Execute tests with npm test

The "sparrow" testing image is © Leon Weidauer, permission to use it for testing is granted.

FAQs

Package last updated on 29 Jan 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc