Skip to content

RusticFlare/pixel-sorter

Repository files navigation

pixel-sorter

ko-fi

npm GitHub GitHub Sponsors

A command line app for pixel sorting images

If you need help, find bugs, or want a new feature: please raise an issue

Inspired by satyarth/pixelsort

Installation

Prerequisites

npm

  • Install npm.
  • You are downloading the command line client that lets you install pixel-sorter from the npm repository

Install pixel-sorter

npm i -g @rusticflare/pixel-sorter

Usage

Pixel Sort Your First Image

This will pixel sort an image called example.jpg in your current directory and save the output in the same directory as example.jpg.

pixel-sorter example.jpg

Note: A one pixel border is cropped from the output file (this is due to this pixel sorter making some of those outer pixels slightly transparent)

Troubleshooting
  • Powershell
    • Make sure you are running as an Administrator
    • If you see this error:
      ... cannot be loaded because the execution of scripts is disabled on this system.
      run:
      Set-ExecutionPolicy RemoteSigned
      (See this StackOverflow answer for more details)

Options

See Examples for how to use these

Option Argument Description Default Value
-o Text The name of the output file (e.g. sorted) The current date and time
-m File The path to "mask" file N/A
-a A number in 0.0-360.0 The angle to sort along (as degrees on a compass) 0.0
-i An interval function The interval function to use lightness
-l A number in 0.0-1.0 The darkest lightness to include in sorted sections (used when the interval function is lightness) 0.25
-u A number in 0.0-1.0 The brightest lightness to include in sorted sections (used when the interval function is lightness) 0.8
-w A positive whole number The average width (in pixels) of the random sorted sections (used when the interval function is random) 400
-s A sorting function The sorting function to use lightness
-f A filetype The filetype to output jpg
-h N/A Print the help message N/A

Interval Functions

  • lightness - pixels with a lightness between the -l and -u values are sorted
  • random - random sections of average width -w are sorted
  • none - everything is sorted

Sorting Functions

  • hue
  • saturation
  • lightness
  • intensity

Filetypes

  • jpg
  • png

Examples

example.jpg:

Default

pixel-sorter example.jpg

Threshold

When using the lightness interval function: only pixels with a lightness between -l and -u will be sorted.

Here we sort pixels with a lightness between 0.6 and 0.9:

pixel-sorter example.jpg -l 0.6 -u 0.9

Angle 🧭

You can change the sorting angle (as degrees on a compass).

pixel-sorter example.jpg -a 315

Mask & Random 🎭

A "mask" file should be a black and white image (the same size as the sorted image). Only the white sections are considered for sorting.

-i random causes random sections of the image should be sorted. You can control the average width (in pixels) of these sections with -w.

example-mask.jpg:

pixel-sorter example.jpg -m example-mask.jpg -a 135 -i random

Updating

To update to the latest version

npm up -g @rusticflare/pixel-sorter