Skip to content

RusticFlare/pixel-sorter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0259f5f Â· Apr 8, 2023

History

78 Commits
Mar 26, 2021
Mar 15, 2021
Apr 9, 2021
Mar 11, 2021
May 20, 2021
Mar 11, 2021
Mar 29, 2021
Jan 17, 2023
May 20, 2021
Mar 11, 2021
Mar 11, 2021
Mar 11, 2021
May 20, 2021
Mar 11, 2021

Repository files navigation

pixel-sorter

ko-fi

npm License 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 (and Update) pixel-sorter

npm i -g @rusticflare/pixel-sorter

Distro Packages

AUR (Arch Linux)

pixel-sorter can be installed from the AUR using an AUR helper. e.g.

paru -S 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
-p A pattern The patterns to sort along lines
-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
-f File The path to a file to be used by the randomfile interval function 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[file] sorted sections (used when the interval function is random[file]) 400
-s A sorting function The sorting function to use lightness
-e A filetype The extension of the filetype to output jpg
-c A pair of integers The center of the circle when the circles pattern is used 0 0
-r N/A Reverse the sorting order N/A
-h N/A Print the help message N/A

Patterns

  • lines
  • circles

Interval Functions

  • lightness - pixels with a lightness between the -l and -u values are sorted
  • random - random sections of average width -w are sorted
  • randomfile - the brighter a pixel in a file provided by -f makes a pixel more likely to be sorted (use -w to control the average width)
  • 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

Circles 🟣

Sort circles with:

  • center -200 -600 (0 0 is the center of the image)
  • angle 210 (where the brightest and darkest pixels meet)
  • reversed sort
pixel-sorter example.jpg -p circles -c -200 -600 -a 210 -r

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

Random File

The brighter the pixel in -f the more likely the corresponding pixel is to be sorted.

example-randomfile-mask.jpg:

pixel-sorter example.jpg -i randomfile -f example-randomfile-mask.jpg

ko-fi