New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

image-outline

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

image-outline

Get a polygon outline for the opaque (or non-white or non-black) area of an image, in the browser, in node, or on the command line

  • 0.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
554
increased by0.73%
Maintainers
1
Weekly downloads
 
Created
Source

image-outline

Let's say you have a .png of a cow, with a transparent background. How many times have you asked yourself how you can get a polygon outline of the cow from that? Well, maybe it will come up someday if you are working on:

  1. Some sort of cow-outlining graphics demo
  2. Some kind of 2-D physics simulation of static-body cows (hey, that's how I came to this).
  3. I'm sure there are many other applications.

Well, now you are in luck. This module -- usable as a node module, in the browser, or on the command line -- can quickly and easily generate a polygon from any image of a cow.

It also works on images of things other than cows.

In node.js

When running in the node environment, image-outline uses get-pixels to asynchronously load the image, from a file or an URL.

Run

npm install --save image-outline

Then in your javascript

var getImageOutline = require('image-outline');

// Point getImageOutline at a relative file path or an URL to an image
// preferably one showing a PNG, with a transparent background, maybe of a cow. 

getImageOutline('http://www.cow.pics/cow.png', function(err, polygon) {
   if (err) {
      // err is an Error; handle it
      return;
   }
   
   // polygon is now an array of {x,y} objects. Have fun!
};

From the Browser

The browser version of the getImageOutline function takes a DOM Image Element (an HTMLImageElement), which must already be done loading its content, and synchronously returns a polygon.

Behind-the-scenes, an HTML5 canvas is used to extract pixel data from the image, so this isn't going to work in Internet Explorer 8 or earlier.

With browserify

Run

npm install --save image-outline

Then in your javascript

var getImageOutline = require('image-outline');

// Get your hands on a loaded HTMLImageElement, preferably one showing a PNG,
// with a transparent background, maybe of a cow. 
var imageElement = new Image();
image.href = 'http://www.cow.pics/cow.png';
image.onload = function() {
   var polygon = getImageOutline(image);
   // polygon is now an array of {x,y} objects. Have fun!
};

Then browserify your whole shebang and... well, you don't need me to tell you how browserify works.

Without browserify

Not using browserify yet? It's fun: it lets you have all the luxuries of npm in for-the-browser code. No? OK, no problem, the stand-alone prebuilt UMD version of image-outline will work in an AMD (requireJS) or vanilla JavaScript environment.

I will show only the vanilla JavaScript example here and trust that folks using requireJS know how to require a module.

Grab a copy of image-outline-min.js and put it somewhere your stuff can access.

In your html:

<script src="path/to/image-outline-min.js"></script>

(Manually maintaining script links in html is one reason you're always feeling so much pressure to use RequireJS or Browserify or something.)

This has added the getImageOutline function to the global window object. (Which is a little gross, another reason you're always feeling so much pressure to use RequireJS or Browserify or something.)

So now your JavaScript can work like this:

// Get your hands on a loaded HTMLImageElement, preferably one showing a PNG,
// with a transparent background, maybe of a cow. 
var imageElement = new Image();
image.href = 'http://www.cow.pics/cow.png';
image.onload = function() {
   var polygon = getImageOutline(image);
   // polygon is now an array of {x,y} objects. Have fun!
};

CLI

A command-line utility is available when you're working in the npm environment.

Run

npm install -g image-outline

To make imageoutline available as a globally-installed CLI module. (Pro tip: don't. Install it locally with --save-dev instead, and reference it from your package.json's "scripts" field instead.)

Then you can run

imageoutline http://www.cow.pics/cow.png

And get back a series of newline-separated x,y pairs on stdout.

FAQs

Package last updated on 17 Mar 2016

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